推送标签触发 CI/CD 循环
Pushing tags triggers CI/CD loop
我在 CI/CD 使用 CircleCI,最近想开始将我的发布标记到主分支。
这是我的 config.yml
version: 2.1
orbs:
node: circleci/node@1.1.6
jobs:
build:
executor:
name: node/default
steps:
- checkout
- node/with-cache:
steps:
- run: git pull
- run: npm install standard-version
- run: npm run release
- run: git push --follow-tags origin master
- node/with-cache:
steps:
- run: echo 'deploying master branch'
当然这会触发无限循环,因为它会创建一个触发 CircleCI 的新推送...我读过您可以通过添加 [ci skip] 跳过提交消息中的构建,但推送标签不会给那个选项。
我该如何解决这个问题?我希望在发布新版本时自动标记语义版本...我能以某种方式解决这个问题吗?
我正在使用标准版本进行标记和更新 package.json。
如有任何帮助,我们将不胜感激ci
解决方案是对我的 config.yml 进行以下更改:
version: 2.1
orbs:
node: circleci/node@1.1.6
jobs:
build:
executor:
name: node/default
steps:
- checkout
- node/with-cache:
steps:
- checkout
- run: npm install
- run: npm run test
- run: npx semantic-release
- node/with-cache:
steps:
- run: echo 'deploying master branch'
- run: ssh -v -o "StrictHostKeyChecking no" user@xxxx.xxx "cd ~/projects/xxx; git pull --rebase; ./publish.sh"
workflows:
version: 2
build_project:
jobs:
- build:
filters:
branches:
only: master
当使用“- 运行: npx semantic-release”执行此操作时,版本升级步骤将自动递增并且提交标记为 [skip ci],因此它不会循环。
我在 CI/CD 使用 CircleCI,最近想开始将我的发布标记到主分支。 这是我的 config.yml
version: 2.1
orbs:
node: circleci/node@1.1.6
jobs:
build:
executor:
name: node/default
steps:
- checkout
- node/with-cache:
steps:
- run: git pull
- run: npm install standard-version
- run: npm run release
- run: git push --follow-tags origin master
- node/with-cache:
steps:
- run: echo 'deploying master branch'
当然这会触发无限循环,因为它会创建一个触发 CircleCI 的新推送...我读过您可以通过添加 [ci skip] 跳过提交消息中的构建,但推送标签不会给那个选项。
我该如何解决这个问题?我希望在发布新版本时自动标记语义版本...我能以某种方式解决这个问题吗?
我正在使用标准版本进行标记和更新 package.json。
如有任何帮助,我们将不胜感激ci
解决方案是对我的 config.yml 进行以下更改:
version: 2.1
orbs:
node: circleci/node@1.1.6
jobs:
build:
executor:
name: node/default
steps:
- checkout
- node/with-cache:
steps:
- checkout
- run: npm install
- run: npm run test
- run: npx semantic-release
- node/with-cache:
steps:
- run: echo 'deploying master branch'
- run: ssh -v -o "StrictHostKeyChecking no" user@xxxx.xxx "cd ~/projects/xxx; git pull --rebase; ./publish.sh"
workflows:
version: 2
build_project:
jobs:
- build:
filters:
branches:
only: master
当使用“- 运行: npx semantic-release”执行此操作时,版本升级步骤将自动递增并且提交标记为 [skip ci],因此它不会循环。