Continuous integration 如何在CircleCI 2.0工作流中进行有条件的手动审批

Continuous integration 如何在CircleCI 2.0工作流中进行有条件的手动审批,continuous-integration,yaml,circleci,circleci-workflows,Continuous Integration,Yaml,Circleci,Circleci Workflows,我有一个简单的用例,我只想为一个特定的分支和/或标记创建一个 类型为“批准”的工作流作业与所有其他作业一样具有过滤器,但需要手动批准(或不需要手动批准)的作业foo将使用类似于requires:['approve']的内容,然后与之强链接 这意味着,如果批准步骤与筛选器不匹配,则根本不会发生foo 所以。。有没有干净的解决方法,yaml文件中没有很多重复项 编辑:使用 这是一种黑客行为,但如果您重复使用您的步骤,并使用不同的过滤器创建两个单独的工作流路径:一个经过批准,另一个未经批准 以下是一个

我有一个简单的用例,我只想为一个特定的分支和/或标记创建一个

类型为“批准”的工作流作业与所有其他作业一样具有过滤器,但需要手动批准(或不需要手动批准)的作业foo将使用类似于
requires:['approve']
的内容,然后与之强链接

这意味着,如果批准步骤与筛选器不匹配,则根本不会发生foo

所以。。有没有干净的解决方法,yaml文件中没有很多重复项

编辑:

使用 这是一种黑客行为,但如果您重复使用您的步骤,并使用不同的过滤器创建两个单独的工作流路径:一个经过批准,另一个未经批准

以下是一个完整的示例:

版本:2.0
#运行作业(在YAML别名映射中定义,请参阅http://yaml.org/type/merge.html)
运行核心:运行核心(&R)
码头工人:
-图像:circleci/节点:8
步骤:
-结帐
-还原缓存:{key:'xxxxx'}
-运行:npm安装
-保存缓存:{key:'xxxxx',路径:['xxxx']}
-运行:npm运行构建
-运行:npm运行验证
-部署:./scripts/deploy.sh
#作业(复制相同的作业,但名称不同)
工作:
运行:

用最新的答案更新此问题: CircleCI在预览中有一个v2 API(以支持CircleCI 2.1),该API支持条件工作流(即条件保持步骤)

-当:
条件:>
步骤:
-稳住脚步
- when:
    condition: << pipeline.parameters.test >>
    steps:
      - hold-step