根据文档
如果在..gitlab ci.yml文件中没有定义阶段,默认的管道阶段是: .pre构建测试部署.post
现在我有了这个示例.gitlab-ci.yml文件,没有定义阶段:
job_build:
stage: build
job_deploy:
stage: deploy由于默认阶段是定义的,我假设这些作业将按顺序执行,但是,在检查管道UI时,Gitlab运行程序似乎并行执行这些作业。
现在,我尝试显式地定义这样的阶段:
stages:
- build
- deploy
job_build:
stage: build
job_deploy:
stage: deploy这些工作是按顺序执行的。
我的问题是,如果没有显式定义阶段,它们是否会并行运行,或者是一个bug?
--
更新
我发现它们是并行运行的,因为job_build有if: '$CI_COMMIT_BRANCH == "main"'规则,而job_deploy没有。但如果两者都有相同的规则,它们就会按顺序运行。仍然很奇怪,因为如果job_deploy还没有完成,那么job_build就不应该运行,对吗?
发布于 2022-11-27 11:14:32
默认情况下,除非添加needs param来创建作业依赖项,否则gitlab将并行(独立)执行。
您可以在这里找到文档:https://docs.gitlab.com/ee/ci/yaml/#needs
https://stackoverflow.com/questions/74557186
复制相似问题