如何使用 GitLab CI/CD 中的规则在特定分支上运行作业

ibe*_*dev 16 gitlab-ci

它似乎rules 取代了 only/except最新 GitLab 版本中的功能。

例如,以前,指定作业必须仅针对 master 分支执行是非常简单的。

如果按照规则来实现的话,该怎么办呢?

我猜测 GitLab 提供了一些指定当前分支名称的变量,但我找不到它。我看到的唯一例子是关于合并请求的。

换句话说,如果我有以下工作,如何限制它只在potato分支中运行?

unit_tests:
  stage: test
  script: dotnet vstest test/*UnitTests/bin/Release/**/*UnitTests.dll --Blame
  rules:
    - exists:
      - test/*UnitTests/*UnitTests.csproj
Run Code Online (Sandbox Code Playgroud)

Jay*_*lil 15

以下是变量引用:

https://docs.gitlab.com/ee/ci/variables/predefined_variables.html


这是 gitlab-runner 项目源代码本身的示例

https://gitlab.com/gitlab-org/gitlab-runner/-/blob/main/.gitlab/ci/test.gitlab-ci.yml

job-name: 
  script:
    - echo "i am potato"
  rules:
    - if: '$CI_COMMIT_BRANCH == "potato"'
Run Code Online (Sandbox Code Playgroud)


Sér*_*gio 7

我想就是这样:

unit_tests:
  stage: test
  script: dotnet vstest test/*UnitTests/bin/Release/**/*UnitTests.dll --Blame
  rules:
    - if: $CI_COMMIT_BRANCH == "potato"
Run Code Online (Sandbox Code Playgroud)