stages
stages用来定义可以被job调用的stages。stages的规范允许有灵活的多级pipelines。
stages中的元素顺序决定了对应job的执行顺序:
1. 相同stage的job可以平行执行。
2. 下一个stage的job会在前一个stage的job成功后开始执行。
接下仔细看看这个例子,它包含了3个stage:
stages:
- build
- test
- deploy
首先,所有build的jobs都是并行执行的。
所有build的jobs执行成功后,test的jobs才会开始并行执行。
所有test的jobs执行成功,deploy的jobs才会开始并行执行。
所有的deploy的jobs执行成功,commit才会标记为success
任何一个前置的jobs失败了,commit会标记为failed并且下一个stages的jobs都不会执行。
这有两个特殊的例子值得一提:
如果.gitlab-ci.yml中没有定义stages,那么jobs stages 会默认定义为 build,test 和 deploy。
如果一个job没有指定stage,那么这个任务会分配到test stage。
网友评论