1+ variables :
2+ NODE_IMAGE : registry.api.weibo.com/hongyu9/node/node:20.19.2-alpine-v0.1
3+
4+ # 1. develop 分支:测试包流程
5+ build_test_develop :
6+ stage : build_test_develop
7+ image : $NODE_IMAGE
8+ rules :
9+ - if : ' $CI_COMMIT_BRANCH == "develop" && $CI_COMMIT_MESSAGE !~ /^\[bot\]/'
10+ script :
11+ - pnpm install
12+ - pnpm run vsix
13+ - cp ./bin/*.vsix ./
14+ - cd src
15+ - CURRENT_VERSION=$(npm pkg get version | tr -d '"')
16+ - cd ..
17+ - echo "请人工测试 .vsix 后点继续,测试通过后 bump 版本号并创建 release 分支"
18+ - |
19+ curl "https://oapi.dingtalk.com/robot/send?access_token=${DINGTAKE_TOKEN}" \
20+ -s -H 'Content-Type: application/json' \
21+ -d "{
22+ \"msgtype\": \"markdown\",
23+ \"markdown\": {
24+ \"title\": \"Wecoder ${CURRENT_VERSION} +1 Alpha 打包完成\",
25+ \"text\": \"### Wecoder ${CURRENT_VERSION} +1 Alpha 打包完成\n* 分支:develop\n* 当前版本:${CURRENT_VERSION} +1 Alpha\n* 下载链接:[点击下载](${CI_PROJECT_URL}/-/jobs/$CI_JOB_ID/artifacts/browse)\n* 如需继续流程,请在 CI 页面点击 create_mr 创建合并请求\n * CI 详情页:[跳转到本次 Pipeline](${CI_PROJECT_URL}/-/pipelines/${CI_PIPELINE_ID})\"
26+ }
27+ }"
28+ artifacts :
29+ paths :
30+ - " *.vsix"
31+ expire_in : 1 hour
32+
33+ create_mr :
34+ stage : create_mr
35+ image : $NODE_IMAGE
36+ before_script :
37+ - git config --global user.email "gitlab@git.intra.weibo.com"
38+ - git config --global user.name "Wecoder CI"
39+ - git remote set-url origin https://oauth2:${CI_PUSH_TOKEN}@git.intra.weibo.com/${CI_PROJECT_PATH}.git
40+ - git checkout develop
41+ # 关键补充:先同步远端最新 develop
42+ - git pull --rebase origin develop
43+ rules :
44+ - if : ' $CI_COMMIT_BRANCH == "develop" && $CI_COMMIT_MESSAGE !~ /^\[bot\]/'
45+ script :
46+ - |
47+ cd src
48+ CURRENT_VERSION=$(npm pkg get version | tr -d '"')
49+ npm version patch -m "chore(release): bump version to %s"
50+ cd ..
51+ NEW_VERSION=$(node -p "require('./src/package.json').version")
52+ git add src/package.json # 如果有
53+ git commit --no-verify --allow-empty -m "[bot]chore(release): bump version to ${NEW_VERSION}" # 若没自动commit
54+ # 再次同步一下(防止极端并发),可选
55+ git pull --rebase origin develop
56+ git push origin develop
57+ MR_URL="${CI_PROJECT_URL}/-/merge_requests/new?merge_request%5Bsource_branch%5D=${CI_COMMIT_REF_NAME}&merge_request%5Btarget_branch%5D=main&merge_request%5Btitle%5D=chore%28release%29%3A%20bump%20version%20to%20${NEW_VERSION}"
58+ echo "点击创建MR: ${MR_URL}"
59+ curl "https://oapi.dingtalk.com/robot/send?access_token=${DINGTAKE_TOKEN}" \
60+ -s -H 'Content-Type: application/json' \
61+ -d "{
62+ \"msgtype\": \"markdown\",
63+ \"markdown\": {
64+ \"title\": \"Wecoder ${CURRENT_VERSION} +1 Alpha 合并请求\",
65+ \"text\": \"### Wecoder ${CURRENT_VERSION} +1 Alpha 合并请求\n* Pipeline 地址:[查看 Pipeline](${CI_PROJECT_URL}/-/pipelines/${CI_PIPELINE_ID})\n* 分支:develop\n* 当前版本:${CURRENT_VERSION} +1 Alpha\n* 创建 MR:[点击这里创建合并请求](${MR_URL})\"
66+ }
67+ }"
68+ when : manual
0 commit comments