当你.gitlab-ci.yml为一个大项目工作时,例如有一个耗时的测试阶段会导致很多延迟。是否有一种简单的方法可以禁用该阶段,因为从stages定义中删除它,从 Gitlab 的角度来看,会使 YAML 无效(因为有一个已定义但未使用的阶段),在我的情况下会导致:
test job: chosen stage does not exist; available stages are .pre, build, deploy, .post
Run Code Online (Sandbox Code Playgroud)
由于 YAML 不支持块注释,因此您需要注释掉违规阶段的每一行。
有没有更快的方法?
小智 52
也可以使用rules和 ,when如下所示:
test:
stage: test
rules:
- when: never
Run Code Online (Sandbox Code Playgroud)
Chr*_*ler 14
您可以使用以点 (' .')开头的作业名称的技巧来禁用舞台上的所有作业。有关更多详细信息,请参阅https://docs.gitlab.com/ee/ci/yaml/index.html#hide-jobs。
有一种方法可以禁用单个作业(但不是阶段),如下所示:
test:
stage: test
when: manual
Run Code Online (Sandbox Code Playgroud)
默认情况下会跳过作业,但仍然可以在 UI 中触发:
到目前为止,我发现的最简单的方法是使用rules如下定义:
test:
stage: test
rules:
- if: '"1" != "1"'
(...)
Run Code Online (Sandbox Code Playgroud)
这仍然感觉有点奇怪,所以如果您有更好的解决方案,我很乐意接受另一个答案。
| 归档时间: |
|
| 查看次数: |
6782 次 |
| 最近记录: |