# gitlab-ci 机制
gitlab 提供了自动部署的能力,其自动部署本质上就是启动一个 docker,在镜像内执行一些脚本,在提交代码后根据配置文件自动执行一些脚本
# 如何使用
首先在项目内创建一个 gitlab-ci.yml 文件,这是自动部署入口,所有的逻辑都是基于这个文件开始的
文件的整体结构
stages: | |
- deploy //定义步骤 | |
deploy_job: //具体的执行任务 | |
stage: deploy | |
image: node:21 //docker镜像 | |
before_script: //开始前的脚本 | |
- npm install -g wrangler | |
script: //主要脚本 | |
- export CLOUDFLARE_ACCOUNT_ID=$CLOUDFLARE_ACCOUNT_ID | |
- export CLOUDFLARE_API_TOKEN=$CLOUDFLARE_API_TOKEN | |
- npm install | |
- npm run deploy | |
after_script: //收尾的脚本 | |
- |- | |
cat << EOF > 1.json | |
{"msg_type":"interactive","card":{"elements":[{"tag":"markdown","content":"项目名:**$CI_PROJECT_TITLE** <br>分支名:**$CI_COMMIT_BRANCH** <br>提交信息:**$CI_COMMIT_MESSAGE** <br>CF Pages 部署域名:**admin-luckyshort-com.pages.dev**"}],"header":{"template":"green","title":{"content":"BI后台部署成功","tag":"plain_text"}}}} | |
EOF | |
- |- | |
cat << EOF > fs.sh | |
#!/bin/bash | |
curl -X POST "https://open.feishu.cn/open-apis/bot/v2/hook/57083d96-04bc-4a29-8cad-ed98dd72f2b1" -H 'Content-Type: application/json' -d @1.json | |
EOF | |
- chmod a+x ./fs.sh | |
- ./fs.sh | |
only: //执行规则 | |
- main | |
cache: //是否需要缓存 | |
key: npm-cache | |
paths: | |
- .npm/ | |
- node_modules |