我试图将gitlab CI作业配置为仅在受限制的分支上运行,但是我找不到only
指令来执行此操作。
答案 0 :(得分:2)
您可以将受保护的变量添加到您的项目(或组)中。
假设您已将变量PROTECTED
设置为任意值,则可以使用
only:
variables:
- $PROTECTED
在您的.gitlab-ci.yml中检查该变量是否存在(因为受保护的变量仅传递给受保护的分支)。
答案 1 :(得分:1)
在Gitlab 11.11中,您可以检查此访问环境变量CI_COMMIT_REF_PROTECTED
only:
variables:
- $CI_COMMIT_REF_PROTECTED
参考:
答案 2 :(得分:0)
将only:variables:
与CI_COMMIT_REF_PROTECTED
结合使用似乎可以很好地解决您的问题,但是如果不进行实验,很难确定细节。
predefined variable CI_COMMIT_REF_PROTECTED
的文档有点不清楚。
If the job is running on a protected branch
我希望仅在分支受保护的情况下设置CI_COMMIT_REF_PROTECTED
,但是看来它是一个布尔值。这意味着我们应该检查字符串"true"
而不是变量的存在。请参见variables -> supported syntax,规则1。使用字符串进行相等匹配。
综合起来,我想说一个完整的解决方案可以清楚地表达您的意图,那就是:
only:
refs:
- branches
variables:
- $CI_COMMIT_REF_PROTECTED == "true"
如果您不希望作业在受保护的标签上运行,则需要refs:branches
。
答案 3 :(得分:0)