在GitLab CI中利用needs自定义job执行顺序
Gitlab ci中有多种方式自定义多job的执行顺序,这里记录一下利用
needs
来调整job执行顺序。
首先来一个yml文件,
stages:
- stage-1
- stage-2
job-1:
stage: stage-1
needs: []
script:
- echo "job-1 started"
- sleep 5
- echo "job-1 done"
job-2:
stage: stage-1
needs: []
script:
- echo "job-2 started"
- sleep 60
- echo "job-2 done"
job-3:
stage: stage-2
needs: [job-1]
script:
- echo "job-3 started"
- sleep 5
- echo "job-3 done"
job-4:
stage: stage-2
needs: [job-2]
script:
- echo "job-4 started"
- sleep 5
- echo "job-4 done"
这里job1 和 job2 是可以并行的。
job1之后将会启动job3 (立即执行, 不会等待job2完成作业)
job2之后将会启动job4 (立即执行, 不会等待job1完成作业)
正如您在屏幕截图中看到的,没等job2完成,job3就已开始执行了。