【问题标题】:Ignore an approval step for a certain branch CCI 2.0忽略某个分支 CCI 2.0 的审批步骤
【发布时间】:2018-02-28 10:32:20
【问题描述】:

我想要的默认是构建我的分支,然后等待批准部署到开发。但是,如果我推送到 dev 分支,那应该在未经批准的情况下部署。

我有以下工作流程:

workflows:
  version: 2
  build:
    jobs:
      - build
      - approve-dev:
          type: approval
          requires:
              - build
          filters:
            branches:
              ignore: dev
      - deploy-dev:
          requires:
            - approve-dev

问题是当approve-dev作业被跳过时,deploy-dev作业失去了它的要求,所以唯一可能的步骤是build

有没有办法解决这个问题?

【问题讨论】:

  • 你试过让deploy-dev也需要build吗?
  • 不幸的是,它是AND 而不是OR,所以这意味着它永远不会工作!

标签: circleci circleci-2.0


【解决方案1】:

我已经想出了一种方法来做到这一点,但它非常冗长,基本上你在那个时候复制工作流,一个副本只用于那个分支,一个副本忽略那个分支,就像这样:

workflows:
  version: 2
  build:
    jobs:
      - build
      - approve-dev:
          type: approval
          requires:
              - build
          filters:
            branches:
              ignore: dev
      - deploy-dev:
          requires:
            - approve-dev
      - deploy-dev-auto:
          requires:
            - build
          filters:
            branches:
              only: dev

使用模板 (<<deploy-dev-defaults: &deploy-dev-defaults) 定义任务意味着您不必重写作业,只需使用两个不同的名称指定两次即可。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-23
    • 1970-01-01
    相关资源
    最近更新 更多