GitLab-CI:仅在满足所有条件时运行作业

Sah*_*Sah 5 gitlab-ci

GitLab-CI 文档中,我阅读了以下内容:

在此示例中,作业将仅针对标记的引用运行,或者如果构建是通过 API 触发器管道计划显式请求的:

job:
  # use special keywords
  only:
    - tags
    - triggers
    - schedules
Run Code Online (Sandbox Code Playgroud)

我注意到该文档使用or代替and,这意味着在满足任一条件时运行作业。但是,如果我想将作业配置为仅在满足所有条件时运行,例如,在 Pipeline Schedulemaster 分支上,该怎么办?

Ste*_*tel 7

如果您的具体问题是我如何只master在计划时运行管道,这应该可行:

job:
  only:
    - master
  except:
    - triggers
    - pushes
    - external
    - api
    - web
Run Code Online (Sandbox Code Playgroud)

在此示例中,您排除了除schedules“触发器”之外的所有内容,并且仅针对master分支运行。

  • 但是,如果 GitLab 将来添加一种新的“触发器”类型,则 `except` 子句将需要更新。 (3认同)