我正在尝试设置一个手工作业,以便在生产中部署,我想了解第二条规则:
deploy_prod:
stage: deploy_prod
rules:
- if: $CI_PIPELINE_SOURCE == 'web'
when: manual
- if: $CI_PIPELINE_SOURCE == 'push' && $CI_COMMIT_BRANCH == 'master'
when: manual
script: echo 1第一条规则允许我通过单击分支母版上的run管道在生产中进行部署,这将创建一个“阻塞”管道,要求我单击play按钮来运行。
when: manual (提交,合并分支)到主程序将立即触发作业,那么使用when: manual时应该采取什么行为?。
提前感谢您的帮助
发布于 2022-09-08 14:36:43
要使第一个规则自动运行而不必手动启动它,可以将when: manual更改为when: always并始终运行,或者完全删除第一个规则。这是因为您没有默认的规则集(即“works”子句),所以这是可行的。按照您的规则现在的方式,除了web和push之外,每个管道源都将自动运行,因此删除任何一个规则都意味着它们的作业总是自动运行,而不管源是什么。但是,如果不希望作业为triggers、schedules或merge_requests运行,而是希望web自动运行,则必须使用when: always。
对于你的第二条规则,最好在一个单独的问题中说明你在问什么,但实际上行为取决于你自己。
https://stackoverflow.com/questions/73638998
复制相似问题