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

时间:2020-06-09 16:11:49

标签: gitlab-ci

最新的GitLab版本似乎具有only/except replaces potato功能。

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

如何使用规则?

我猜想GitLab提供了一些变量来指定当前分支的名称,但是我找不到。我看到的唯一示例与合并请求有关。

换句话说,如果我有以下工作,如何限制它仅在unit_tests: stage: test script: dotnet vstest test/*UnitTests/bin/Release/**/*UnitTests.dll --Blame rules: - exists: - test/*UnitTests/*UnitTests.csproj 分支中运行?

http://api.e.xyz.com/rc/r/{{ID}}/names

2 个答案:

答案 0 :(得分:0)

以下是变量引用:

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

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

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

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let innerBasketData = basket.basket
let selectedRowName = innerBasketData[indexPath.row]. basketName 
let selectedRowText = innerBasketData[indexPath.row]. basketText
let selectedImage = innerBasketData[indexPath.row]. basketImage

let basketInfoVC = self.storyboard?.instantiateViewController(identifier: "BasketDetailsView") as! FruitDisplayVC
basketInfoVC.name = selectedRowName
basketInfoVC.text = selectedRowText
basketInfoVC.image = selectedImage

self.navigationController?.pushViewController(basketInfoVC, animated: true)

}

答案 1 :(得分:0)

我想就是这样:

unit_tests:
  stage: test
  script: dotnet vstest test/*UnitTests/bin/Release/**/*UnitTests.dll --Blame
  rules:
    - if: $CI_COMMIT_BRANCH == "potato"