美文网首页
aliyun OSS 静态代码自动上传并更新CDN

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

作者: colbrze | 来源:发表于2018-11-05 16:29 被阅读40次

背景

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/

相关文章

网友评论

      本文标题:aliyun OSS 静态代码自动上传并更新CDN

      本文链接:https://www.haomeiwen.com/subject/bsbsxqtx.html