Continuous integration CircleCI作业批准不';我不能执行这项工作

Continuous integration CircleCI作业批准不';我不能执行这项工作,continuous-integration,circleci,Continuous Integration,Circleci,我在CircleCI配置中设置了以下工作流: // <<< definition of unit_tests, integration_tests and deploy jobs >>> workflows: version: 2 build-test-and-deploy: jobs: - unit_tests - integration_tests: requires:

我在CircleCI配置中设置了以下工作流:

// <<< definition of unit_tests, integration_tests and deploy jobs >>>

workflows:
  version: 2
  build-test-and-deploy:
    jobs:
      - unit_tests
      - integration_tests:
          requires:
            - unit_tests
      - build_images:
          requires:
            - integration_tests
          filters:
            branches:
              only:
                - production
      - deploy:
          type: approval
          requires:
            - build_images
          filters:
            branches:
              only:
                - production
/>
工作流程:
版本:2
构建、测试和部署:
工作:
-单元测试
-集成测试:
要求:
-单元测试
-构建图像:
要求:
-集成测试
过滤器:
分支机构:
仅:
-生产
-部署:
类型:批准
要求:
-建立你的形象
过滤器:
分支机构:
仅:
-生产
目标是在手动批准部署到生产之前停止工作流执行。启动工作流执行时,它会在部署作业之前正确停止,但在UI中单击“批准”后,不会启动部署作业,工作流将以成功结束


您知道有什么问题吗?

CircleCI文档说明了此类设置必须满足的几个要求:

  • 审批
    是一种特殊的作业类型,仅适用于
    工作流
    键下的作业
  • hold
    作业必须是一个唯一的名称,任何其他作业都不能使用该名称
  • 要保留的作业的名称是任意的-它可以是
    等待
    暂停
    ,例如,只要作业中有
    类型:批准
    键即可在手动批准的作业之后运行的所有作业必须
    要求:
    该作业的名称。请参阅上例中的
    deploy:job
  • 作业按照定义的顺序运行,直到工作流处理带有
    type:approval
    键的作业,然后是它所依赖的作业
配置应该还有一个以上未配置的作业,其唯一目的是停止执行:

// <<< definition of unit_tests, integration_tests and deploy jobs >>>


workflows:
  version: 2
  build-test-and-deploy:
    jobs:
      - unit_tests
      - integration_tests:
          requires:
            - unit_tests
      - build_images:
          requires:
            - integration_tests
          filters:
            branches:
              only:
                - production
      - hold:
          type: approval
          requires:
            - build_images
          filters:
            branches:
              only:
                - production
      - deploy:
          requires:
            - hold
          filters:
            branches:
              only:
                - production
/>
工作流程:
版本:2
构建、测试和部署:
工作:
-单元测试
-集成测试:
要求:
-单元测试
-构建图像:
要求:
-集成测试
过滤器:
分支机构:
仅:
-生产
-持有:
类型:批准
要求:
-建立你的形象
过滤器:
分支机构:
仅:
-生产
-部署:
要求:
-持有
过滤器:
分支机构:
仅:
-生产

主要的一点是作业必须按顺序配置(
deploy
job需要
halt
job才能完成)。

这对我来说也是一个主要的困惑点:无论出于什么原因,你都不能只将
type:approval
添加到需要批准的作业中,但是您需要创建另一个带有
type:approval
的空白作业,并需要该作业!谢谢你把它清理干净