我正在尝试将 gitlab CI 作业配置为仅在受限分支上运行,但我找不到only执行此操作的指令。
Jay*_*d16 30
rules:if应该使用。
rules:
- if: $CI_COMMIT_REF_PROTECTED == "true"
Run Code Online (Sandbox Code Playgroud)
only:variables: 已被弃用
在 Gitlab 11.11 中,您可以通过访问环境变量来检查此内容CI_COMMIT_REF_PROTECTED
only:
variables:
- $CI_COMMIT_REF_PROTECTED
Run Code Online (Sandbox Code Playgroud)
参考:
使用only:variables:结合CI_COMMIT_REF_PROTECTED似乎是一个很好的解决你的问题,但在细节上难以确定,而不实验。
预定义变量 的文档CI_COMMIT_REF_PROTECTED有点不清楚。
If the job is running on a protected branch
Run Code Online (Sandbox Code Playgroud)
我希望CI_COMMIT_REF_PROTECTED只有在分支受到保护时才设置,但它似乎是一个布尔值。这意味着我们应该检查字符串"true"而不是变量的存在。请参阅变量 -> 支持的语法,规则 1。使用字符串进行相等匹配。
综上所述,我认为一个完整的解决方案可以清楚地表达您的意图:
only:
refs:
- branches
variables:
- $CI_COMMIT_REF_PROTECTED == "true"
Run Code Online (Sandbox Code Playgroud)
refs:branches如果您不希望作业在受保护的标签上运行,则这是必需的。
| 归档时间: |
|
| 查看次数: |
2050 次 |
| 最近记录: |