我们希望具有以下逻辑:为master分支自动运行deploy_qa阶段,但要求所有其他分支手动运行该阶段。
stage: deploy_qa
except:
- master
when:manual
有办法吗?
答案 0 :(得分:1)
您可以在同一阶段将作业拆分为两个作业,一个作业仅用于主作业,而不是library(data.tbale)
setDT(data)[sample(id, 3, replace = FALSE), a := b][]
,另一个作业将仅在主作业上运行,并且将是manual
。
此作业永远不会一起运行(通过将它们定义为仅运行/主运行)。
manual
要使其更上一层楼,可以使用锚点(deploy qa:
stage: deploy_qa
script:
- <deploy qa...>
except:
- master
when:manual
deploy qa master:
stage: deploy_qa
script:
- <deploy qa...>
only:
- master
),别名(&
)和映射合并(*
)来防止代码重复。在此处了解更多信息:https://docs.gitlab.com/ee/ci/yaml/README.html#special-yaml-features