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

Ami*_*vic 25 gitlab gitlab-ci

我对 Gitlab CI 管道workflow:rulesjob:rules

workflow:
  rules:
    - if: '$CI_PIPELINE_SOURCE == "push"'
    - if: '$CI_PIPELINE_SOURCE != "schedule"'

Run Code Online (Sandbox Code Playgroud)

test:
  stage: test
  image: image
  script:
    - echo "Hello world!"
  rules:
    - if: $CI_PIPELINE_SOURCE == "schedule"
Run Code Online (Sandbox Code Playgroud)

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

dan*_*elz 25

您可以在创建worfklow管道时进行配置,也可以在创建作业时进行配置。rules

因此,在您的示例中,管道是为推送而创建的,但无法计划,而您的test作业只会在计划时运行。

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