devops - 如何将 Gitlab 中的 CI_COMMIT_REF 与值列表进行比较?
问题描述
只有当分支不等于开发、测试或主控时,我才想在 Gitlab 中运行一组作业。这是代码的样子:
Test:
stage: test
rules:
- if: $CI_COMMIT_REF == 'develop' || $CI_COMMIT_REF == 'test' || $CI_COMMIT_REF == 'master'
when: never
script:
- echo "Test!"
我想知道是否有一种有效/更短的方法来执行此操作,例如 IN 或 CONTAINS 关键字。谢谢!
解决方案
你也可以使用正则表达式来完成这样的任务——但你有正则表达式;)
Test:
stage: test
rules:
- if: $CI_COMMIT_REF_NAME =~ /^(develop|master|test)$/
when: never
script:
- echo "Test!"
这是我能想到的唯一方法smaller
。但请注意,较小的并不总是更容易调试或阅读。这是一个小的正则表达式,它很容易 - 但正则表达式可能会增加您可能想要避免的另一个级别的复杂性。
为了进一步阅读,我推荐https://docs.gitlab.com/ee/ci/jobs/job_control.html#common-if-clauses-for-rules
推荐阅读
- javascript - 将 gps 坐标转换为旋转地图上的 xy
- python - 输入形状不受限制的分割神经网络
- javascript - Node.js:如何在 C++ 中创建 ES6 模块
- python - 如何在 Django 中格式化日期和时间?
- python - 如何删除换行后的字符和单词之间的空格
- python - 我正在创建一个虚拟语音助手,一切都很好,但是执行命令所花费的时间太多了。那么我可以减少花费的时间吗
- php - PHP 如果存在数组值,则回显文本
- java - 休眠 - OneToMany ORA-02291 - 违反 - 未找到父键
- javascript - Material UI TablePagination 中的 ColSpan 属性是什么意思?
- angular - 如何配置 .htaccess 文件以便它同时处理 Angular 路由和 HTTPS 重定向?