我试图配置一个GitLab CI工作流,只在受限分支上运行,但我找不到only
指令来实现此操作。
使用only:variables:
结合CI_COMMIT_REF_PROTECTED
似乎是解决您问题的好方法,但在没有实验的情况下很难确定细节。
预定义变量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
。
CI_COMMIT_REF_PROTECTED
来检查它。only:
variables:
- $CI_COMMIT_REF_PROTECTED
Reference:
$CI_COMMIT_REF_PROTECTED
而不是CI_COMMIT_REF_PROTECTED
。来源:https://docs.gitlab.com/ee/ci/variables/README.html#supported-syntax - Fred FettingerPROTECTED
,你可以使用它。您可以向您的项目(或组)添加一个受保护的变量。假设您已经设置了一个任意值的变量PROTECTED
,您可以使用它。
only:
variables:
- $PROTECTED