Gitlab CI强制我在使用多个包含时定义阶段
我有一个基本文件。gitlab-ci.yml:Gitlab CI强制我在使用多个包含时定义阶段,gitlab,gitlab-ci,Gitlab,Gitlab Ci,我有一个基本文件。gitlab-ci.yml: include: - project: 'my-group/my-project' file: 'test1.yml' test1.yml: stages: -test_stage1 test_stage1: stage: test_stage1 script: //some script 它工作正常,测试阶段1成功运行 现在,如果我还想包括其他文件: include: - project: 'my-group/my-p
include:
- project: 'my-group/my-project'
file: 'test1.yml'
test1.yml:
stages:
-test_stage1
test_stage1:
stage: test_stage1
script: //some script
它工作正常,测试阶段1成功运行
现在,如果我还想包括其他文件:
include:
- project: 'my-group/my-project'
file: 'test1.yml'
- project: 'my-group/my-project'
file: 'test2.yml'
test2.yml:
stages:
-test_stage2
test_stage2:
stage: test_stage2
script: //some script
我得到以下错误:
此GitLab CI配置无效:测试阶段作业:阶段
参数应为测试阶段2
因此,我必须明确添加阶段:
include:
- project: 'my-group/my-project'
file: 'test1.yml'
- project: 'my-group/my-project'
file: 'test2.yml'
stages:
-test_stage1
-test_stage2
而且很有效。为什么会这样?
我是否能够以某种方式只包含多个文件,并且在不声明它们的情况下遍历它们的所有阶段?您需要定义阶段,以便GitLab CI知道阶段的顺序 看 我是否能够以某种方式只包含多个文件,并在不声明它们的情况下完成它们的所有阶段 如果你想有多个阶段,就不需要了。您需要告诉GitLab CI哪个阶段是第一阶段、第二阶段等,以便在进入下一阶段之前可以运行每个阶段的所有作业。这给了我们一条管道
顺便说一下,默认阶段是测试。如果您没有为作业提供
stage
属性,它将被分配到test
阶段。但是为什么gitlab不按照包含文件的阶段顺序构建管道呢?我理解您的意思。这就是GitLab CI的工作原理。一旦声明了阶段序列,GitLab将确保作业按该序列(阶段)运行,而不管它们在YAML文件中的显示顺序。