【发布时间】:2021-10-03 07:14:30
【问题描述】:
假设分阶段定义了 4 个作业。
阶段:
- 构建
- 测试
- 部署
- 上传
现在测试、部署和上传仅在管道手动触发时运行。我们可以为此在单独的作业上定义规则,但它会是重复的。(不想使用它)
是否可以在“stages”上定义规则,以便一个作业将在自动触发时运行,其余 3 个作业将在管道的手动触发时运行。
【问题讨论】:
标签: gitlab gitlab-ci jobs git-stage gitlab-pipelines
假设分阶段定义了 4 个作业。
阶段:
现在测试、部署和上传仅在管道手动触发时运行。我们可以为此在单独的作业上定义规则,但它会是重复的。(不想使用它)
是否可以在“stages”上定义规则,以便一个作业将在自动触发时运行,其余 3 个作业将在管道的手动触发时运行。
【问题讨论】:
标签: gitlab gitlab-ci jobs git-stage gitlab-pipelines
我知道这是一个迟到的答案,但我在遇到这种情况时找到了解决方案。
使用工作流来控制管道行为。(在 GitLab 12.5 中引入) https://docs.gitlab.com/ee/ci/yaml/index.html#workflow
workflow:
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
【讨论】: