找回密码
 注册SCIFIFANS!
首页 科技专区 编程开发 如何使用GitLab CI/CD 自动构建、发布博客? ...

如何使用GitLab CI/CD 自动构建、发布博客?

4
回复
3908
查看
[ 复制链接 ]

该用户从未签到

10

主题

51

回帖

404

积分

Judgement

积分
404
<

用邮箱/用户名来登录sci-fifans!

您需要 登录 才可以下载或查看,没有账号?注册SCIFIFANS!

x
首先,你需要正确部署GitLab和GitLab Runner【笑】


当然,GItHub也可以,我后面可能会补一个GitHub自动构建脚本


先说说我的现状:基于node.js+hexo构建博客,部署到阿里云OSS。国内打开还是比较快的,基本0.8s内打开。


“用户故事”与需求:由于每次加一个文章都要手动构建、打开阿里云、上传,非常非常非常麻烦@_@,向自动化完成这些,只需要把文章推到仓库就自动构建。


先看看成品吧:








使用道具 举报

该用户从未签到

10

主题

51

回帖

404

积分

Judgement

积分
404
本帖最后由 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





使用道具 举报

该用户从未签到

10

主题

51

回帖

404

积分

Judgement

积分
404
本帖最后由 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 "部署完成"


使用道具 举报

该用户从未签到

10

主题

51

回帖

404

积分

Judgement

积分
404
本帖最后由 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/


使用道具 举报

该用户从未签到

10

主题

51

回帖

404

积分

Judgement

积分
404
好了,完成,写文章,再git三部曲即可

git add .
git commit -m "add"
git push origin master

当然懒的话也可以把上面的三行放到批处理文件了

使用道具 举报

您需要登录后才可以回帖 登录 | 注册SCIFIFANS!

本版积分规则