CircleCI 2.0 正在运行测试工作流程两次

问题描述 投票:0回答:2

我的

.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 circleci-2.0
2个回答
0
投票

我一直想知道为什么会发生这种情况近四年了,我终于对此做了一些事情。我的发现之一是 CircleCI 讨论中的这个条目,其中同一个人(我相信)给出了(恕我直言,恕我直言)相同无用的答案。

我最终明白,带注释的标签算作一次提交(看起来),这就是 CI 运行两次的原因。

在我的例子中,我使用 npm-version 来标记和提交,对我有用的是添加到提交消息“[skip ci]”。

"deploy": "npm version --preid build prerelease --message 'New build: %s [skip ci]'",
"postversion": "git push --follow-tags",

参见:

我想你不再关心这个问题了,但希望这个新答案可以帮助其他人。


-1
投票

正在发生的事情正是应该发生的。

在我推送新的提交和标签之后

提交按您想要的方式运行

build-and-test
,标签也按您的需要运行。

© www.soinside.com 2019 - 2024. All rights reserved.