Gitlab-ci 管道中“workflow:rules”的用途是什么?

问题描述 投票:0回答:1

我对 Gitlab CI 管道

workflow:rules
job:rules

有点困惑
workflow:
  rules:
    - if: '$CI_PIPELINE_SOURCE == "push"'
    - if: '$CI_PIPELINE_SOURCE != "schedule"'

test:
  stage: test
  image: image
  script:
    - echo "Hello world!"
  rules:
    - if: $CI_PIPELINE_SOURCE == "schedule"

如果在同一个 GitLab-ci YAML 文件中使用它们会发生什么。

gitlab gitlab-ci
1个回答
26
投票

使用

workflow
,您可以配置何时创建管道,而使用
rules
,您可以配置何时创建作业。

因此,在您的示例中,管道是为推送而创建的,但无法计划,而您的

test
作业只会在计划时运行。

但是,由于工作流规则优先于作业规则,因此在您的示例中不会创建任何管道,因为工作流和作业的规则是互斥的。

© www.soinside.com 2019 - 2024. All rights reserved.