我具有以下配置以启用合并请求上的管道。我希望此管道仅在对几个特定分支的合并请求上运行。 例如:“ release / some-xyz-branch”和“ develop”分支。 怎么做?
test_job:
stage: test
only:
- merge_requests
script:
- npm run test
我尝试按如下所示在“-merge_requests”之后添加分支名称,但未按预期工作。
test_job:
stage: test
only:
- merge_requests
- develop
- release/some-xyz-branch
script:
- npm run test
答案 0 :(得分:1)
您可以将variables
与refs
一起使用来运行管道。
test_async:
script:
- echo "Test Async"
only:
refs:
- merge_requests
variables:
- $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME =~ /^release\/.*$/
test_db:
script:
- echo "Test db"
only:
- master
在上述yaml中,test_async
仅在创建合并请求且目标分支为develop
或以release/
开头时运行。 test_db
仅在提交给master时运行。
答案 1 :(得分:0)
我们可以将$CI_COMMIT_REF_NAME预定义的环境变量与only:variables结合使用来完成此行为
test_job:
stage: test
only: [merge_requests]
except:
variables:
- $CI_COMMIT_REF_NAME =~ /^docs-/
script:
- npm run test
注意:docs-代表refs/merge-requests/:iid/head