您能否设置 Gitlab CI 阶段,以便其他阶段不等待它完成?

Wel*_*oud 15 continuous-integration gitlab gitlab-ci gitlab-ci-runner

假设我在中定义了这些阶段.gitlab-ci.yml

stages:
    - build
    - analysis
    - tests
    - deploy
    - post-deploy
Run Code Online (Sandbox Code Playgroud)

由于analysis需要花费很多时间并且我并不真正关心结果(我也已经allow_failure: true设置) - 是否可以以某种方式定义开始analysis然后立即启动下一阶段tests

我在官方文档上没有找到任何类似主题的参考。

编辑:

主要思想是所有其他阶段都可以运行,就好像它们analysis根本不存在一样。如果我将 和 置于analysis同一阶段tests,那么 和analysis都会tests同时运行,但是deploy直到它们都完成后才会启动。这可不行。我想tests完成然后启动deploydeploy完成后我想启动post-deploy。我真的不关心analysis结果,我只是想触发它并继续部署。

Mik*_*sin 16

从 v12.8 开始,您可以使用needs: []立即启动作业。文档: https: //docs.gitlab.com/ee/ci/yaml/#needs


sec*_*tor 1

阶段根据定义是连续的。一个阶段将被执行另一阶段。

如果要并行处理分析和测试,则必须在同一阶段定义它们。

stages: 
 - build
 - processing
 - deploy
 - ...

analysis:
 stage: processing
 ...


tests:
 stage: processing
 ...
Run Code Online (Sandbox Code Playgroud)

https://docs.gitlab.com/ce/ci/yaml/README.html#stage

  • 也许我的问题还不够清楚。我知道这个选项,但是在这种情况下,如果测试完成,其余阶段(部署、部署后)仍将等待分析完成。是否可以开始分析并继续其余部分,就好像分析不在阶段中一样? (2认同)