aliyun OSS 静态代码自动上传并更新CDN

背景

aliyun OSS 上部署了静态网站。之前更新项目需要手动构建,并使用桌面工具将新的包传到 aliyun OSS 上。并在 CDN 服务中,手动添加域名更新。

一、gitlab 代码提交时 Jenkins 自动构建

首先在 Jenkins 上安装插件:GitLab Plugin,GitLab Hook

Jenkins job 的设置中,在构建触发器下添加Build when a change is pushed to GitLab.

选中高级,在最下方点击 Generate 生成 token。

生成 webhook token

到 GitLab 的项目中,在设置中找到集成

在这里设置 webhook,URL 中输入 Jenkins 步骤中最上方的 URL,token 中输入刚刚生成的 token,去掉SSL证书验证的勾选。

gitlab 中添加 webhook

生成 webhook 并保存 Jenkins 中的设置。然后点击 Test -> Push events进行测试。出现 HTTP 200证明设置全部正确。

发送测试请求
发送测试请求成功

二、生成静态文件

因为我们在 gitlab 中存放的是 react 代码,所以需要生成静态代码后,才能上传使用。

在 Jenkins 构建中,添加执行shell

# 构建
cd ${WORKSPACE}/invite/
npm install
npm run build

cd ${WORKSPACE}/lucky_money/
npm install
npm run build

三、上传文件到 OSS

这是使用到 aliyun 官方提供的 oss 命令行工具

可以使用 help 查看帮助。

在使用之前,先要使用命令./ossutil config,创建配置文件,将accessKey等信息填入。

使用cp命令上传文件。

/opt/aliyun_oss/ossutil cp invite/build/ oss://***-invite --config-file /root/.ossutilconfig -r  -u
/opt/aliyun_oss/ossutil cp lucky_money/build/ oss://***lucky --config-file /root/.ossutilconfig -r  -u

-r 上传文件夹

-u 增量更新

四、更新 CDN

官方文档:https://help.aliyun.com/document_detail/27149.html

使用官方提供的示例

将示例文件放到 Jenkins 服务器上,在aliyun.ini文件中配置好accesskeyidaccesskeysecret后,使用以下命令更新 CDN。

python cdn.py Action=RefreshObjectCaches ObjectType=Directory ObjectPath=http://lucky.****.com/
python cdn.py Action=RefreshObjectCaches ObjectType=Directory ObjectPath=http://invite.****.com/
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,951评论 19 139
  • 前言 前段时间的工作中有接触到接口测试,测试代码以maven工程的形式编写,使用testNG测试框架。工作中,每次...
    Ivanlfli阅读 3,927评论 7 24
  • Jenkins部分 首先,我们要有个Jenkins咯,下载链接:https://jenkins.io/downlo...
    李国宝阅读 1,150评论 1 2
  • 她垂着头 哀哀地长叹一口气 今天 他又不能来了 他为什么总是不能来 他被朝霞唤去 又被晚风吹走 他的命,似不是自己...
    69659973ba53阅读 394评论 0 1
  • 今天想讲一个我朋友的故事,对,我有一个朋友系列开始了…… 我的这个朋友,应该可以说是我的发小,小时候在一起玩泥巴,...
    Minta翁阅读 321评论 0 1