如何在gitlab“阶段”中定义规则,以便无需为作业定义单独的规则

Yas*_*dra 7 jobs git-stage gitlab gitlab-ci gitlab-pipelines

假设分阶段定义了4个工作。

阶段:

  • 建造
  • 测试
  • 部署
  • 上传

现在测试、部署和上传仅在管道手动触发时运行。我们可以为此定义单独作业的规则,但它会重复。(不想使用它)

是否可以在“阶段”上定义规则,以便一个作业将在自动触发器上运行,其余 3 个作业将在管道的手动触发器上运行。

Sub*_*san 2

我知道这是一个迟到的答案,但我在遇到这种情况时找到了解决方案。

使用工作流来控制管道行为。(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
Run Code Online (Sandbox Code Playgroud)

  • 但是如何使用“工作流”来控制运行哪些作业/阶段? (2认同)