我的
.circleci/config.yml
文件中的工作流程配置如下所示:
workflows:
version: 2
test-and-deploy-if-tagged:
jobs:
- build-and-test:
filters:
tags:
only: /.*/
- deploy-to-qa:
filters:
tags:
only: /^deploy.*/
branches:
ignore: /.*/
deploy-to-qa
工作流程包括:
deploy-to-qa:
requires:
- build-and-test
定期
master
提交 build-and-test
工作流程运行。这就是我要的。 👍
当我准备好削减构建时,我......
deploy-build-123
)在我推送新的提交和标签后,CircleCI 运行
build-and-test
两次,deploy-to-qa
一次。
如何配置它,以便标记的版本仅运行
build-and-test
一次,如果通过,则运行 deploy-to-qa
?
我一直想知道为什么会发生这种情况近四年了,我终于对此做了一些事情。我的发现之一是 CircleCI 讨论中的这个条目,其中同一个人(我相信)给出了(恕我直言,恕我直言)相同无用的答案。
我最终明白,带注释的标签算作一次提交(看起来),这就是 CI 运行两次的原因。
在我的例子中,我使用 npm-version 来标记和提交,对我有用的是添加到提交消息“[skip ci]”。
"deploy": "npm version --preid build prerelease --message 'New build: %s [skip ci]'",
"postversion": "git push --follow-tags",
参见:
我想你不再关心这个问题了,但希望这个新答案可以帮助其他人。
正在发生的事情正是应该发生的。
在我推送新的提交和标签之后
提交按您想要的方式运行
build-and-test
,标签也按您的需要运行。