首页 > 解决方案 > Gitlab-ci 管道中“工作流程:规则”的目的是什么?

问题描述

我对 Gitlab CI 管道workflow:rulesjob: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 文件中使用会发生什么。

标签: gitlabgitlab-ci

解决方案


worfklow您一起配置何时创建管道,而与rules您一起配置何时创建作业。

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

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


推荐阅读