如何使用GitLab CI/CD 自动构建、发布博客?
首先,你需要正确部署GitLab和GitLab Runner【笑】当然,GItHub也可以,我后面可能会补一个GitHub自动构建脚本
先说说我的现状:基于node.js+hexo构建博客,部署到阿里云OSS。国内打开还是比较快的,基本0.8s内打开。
“用户故事”与需求:由于每次加一个文章都要手动构建、打开阿里云、上传,非常非常非常麻烦@_@,向自动化完成这些,只需要把文章推到仓库就自动构建。
先看看成品吧:
https://i.w3tt.com/2021/11/18/B56cG.png
https://i.w3tt.com/2021/11/18/B5u7I.png
https://i.w3tt.com/2021/11/18/B5XO1.png
本帖最后由 skyone 于 2021-11-18 20:59 编辑
第一步:创建一个仓库,将你的博客文件夹传进去
注意:不要把依赖库给装进去了!!!
这是一份差不多通用的 `.gitignore` 文件,使用它后应为问题不大
```````````````````````````````````````````````
.DS_Store
Thumbs.db
db.json
*.log
node_modules/
public/
.deploy*/
```````````````````````````````````````````````
git五连
git init .
git add .
git commit -m "提交博客"
git add remote origin 你的仓库
git push origin master
https://i.w3tt.com/2021/11/18/B5ILD.png
https://i.w3tt.com/2021/11/18/B53uF.png
本帖最后由 skyone 于 2021-11-18 21:10 编辑
第二步:写CI文件
进入GItLab网页,进入仓库,选【CI/CD】->【编辑器】
下面是一份模板,除了tag,基本不用改,有注释,就不解释了
stages:
- build
- deploy
cache:
paths:
- node_modules
- public
# 缓存,不设置的话就白白构建了。。。
build-blog:
image: node:lts-alpine3.14
# 构建时用的镜像,你要用node-ubuntu我也没办法#_#
stage: build
tags:
- x86
# 这里是你的Runner的Tag,不要傻傻的和我填一样的
script:
# yarn换源
- yarn config set registry https://registry.npm.taobao.org/
# 安装hexo
- yarn global add hexo-cli
- yarn install
# 清除缓存
- hexo clean
# 构建页面
- hexo g
- echo 构建完成
deploy-blog:
image: node:lts-alpine3.14
stage: deploy
tags:
- x86
script:
# 安装、配置阿里云OSS工具
- wget https://gosspublic.alicdn.com/ossutil/1.7.7/ossutil64 -O ossutil64
- chmod +x ./ossutil64
- ./ossutil64 config --endpoint $CI_OSS_ENDPOINT --access-key-id $CI_OSS_KEY_ID --access-key-secret $CI_OSS_KEY_SECERT -L CH
# 这里不用改,由于是特别重要的密钥,不能公开,待会处理
# 上传产物
- ./ossutil64 cp -rf ./public $CI_OSS_URI
- echo "部署完成"
本帖最后由 skyone 于 2021-11-18 21:19 编辑
第三步:获取阿里云OSS密钥
在阿里云获取OSS的密钥(不会的去看官方文档,写的还算详细)
需要 AccessKey ID和 AccessKey Secret,以及你OSS储存桶的名字
然后打开GitLab,【打开你的仓库】-> 【设置】->【CI/CD】->【变量】
需要添加4个变量(记得勾上“隐藏变量”)
CI_OSS_ENDPOINT :OSS的Endpoint,可以在阿里云查到
CI_OSS_KEY_ID:即AccessKey ID
CI_OSS_KEY_SECERT :即AccessKey Secret
CI_OSS_URI:你的OSS的URI,例如oss://abcdef/
好了,完成,写文章,再git三部曲即可
git add .
git commit -m "add"
git push origin master
当然懒的话也可以把上面的三行放到批处理文件了
页:
[1]