时间:某些分行的手册

时间:2019-11-27 15:23:13

标签: gitlab gitlab-ci

我们希望具有以下逻辑:为master分支自动运行deploy_qa阶段,但要求所有其他分支手动运行该阶段。

stage: deploy_qa
except:
  - master
  when:manual

有办法吗?

1 个答案:

答案 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