zde*_*bra 2 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:
- unit_tests
- build_images:
requires:
- integration_tests
filters:
branches:
only:
- production
- deploy:
type: approval
requires:
- build_images
filters:
branches:
only:
- production
Run Code Online (Sandbox Code Playgroud)
目标是停止工作流程执行,直到手动批准部署到生产。触发工作流程执行后,它会在部署作业之前正确停止,但是在UI中单击“批准”后,不会触发部署作业,并且工作流程成功结束。
你知道出什么事了吗
CircleCI文档包含一些必须满足此类设置的要求:
approval是一种特殊的工作类型,仅适用于该workflow钥匙下的工作- 该
hold作业必须是其他任何作业都不能使用的唯一名称。- 要保留的作业的名称是任意的- 例如,只要作业中包含密钥,就可以是
wait或。>-在手动批准的作业之后要运行的所有作业必须是该作业的名称。请参考以上示例。pausetype: approvalrequire: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
Run Code Online (Sandbox Code Playgroud)
要点是必须将作业配置为顺序的(deploy作业需要halt完成作业)。
| 归档时间: |
|
| 查看次数: |
133 次 |
| 最近记录: |