TD0*_*854 5 continuous-integration gitlab gitlab-ci
我们有一个中央存储库,保存所有 CI 配置。我们拥有的每个项目都包含该中央存储库中的必要文件。运行作业的条件存在于外部文件中,并确保管道仅针对特定分支运行。
现在我们遇到的情况是,一些开发人员正在开发一个项目,但无法访问中央存储库。每当他们提交时,Gitlab 都会尝试设置管道,但由于开发人员无权访问而失败。
有没有办法向 gitlab-ci.yml 添加一些逻辑,该逻辑在包含中央存储库中的文件之前执行?因此,有效地阻止创建管道并包含外部文件。
此功能已上线,您现在可以使用条件包含
您可以使用包含规则来有条件地包含其他配置文件。
include:
- local: builds.yml
rules:
- if: '$INCLUDE_BUILDS == "true"'
- local: deploys.yml
rules:
- if: $CI_COMMIT_BRANCH == "main"
Run Code Online (Sandbox Code Playgroud)
https://docs.gitlab.com/ee/ci/yaml/includes.html#use-rules-with-include
我的用例是,如果通过变量启用金丝雀部署,则执行金丝雀部署,否则进行基础部署
include:
- project: 'path/devops/gitlab-pipeline'
ref: master
file: '/modules/deploy/base.yml'
rules:
- if: '$CANARY_DEPLOY == "false"'
- project: 'path/devops/gitlab-pipeline'
ref: master
file: '/modules/deploy/canary.yml'
rules:
- if: '$CANARY_DEPLOY == "true"'
Run Code Online (Sandbox Code Playgroud)
除了您的要求外,
每当他们提交时,Gitlab 都会尝试设置管道,但由于开发人员无权访问而失败。
不确定这在上述情况下是否有效,但在我的条件包含情况下工作正常。
| 归档时间: |
|
| 查看次数: |
5296 次 |
| 最近记录: |