Gitlab CI 迫使我在使用多个包含时定义阶段

bea*_*ice 3 gitlab gitlab-ci

我有一个基本文件 .gitlab-ci.yml:

include:
  - project: 'my-group/my-project'
    file: 'test1.yml'
Run Code Online (Sandbox Code Playgroud)

测试1.yml:

stages:
 -test_stage1

test_stage1:
 stage: test_stage1
 script: //some script
Run Code Online (Sandbox Code Playgroud)

它工作正常,test_stage1 运行成功。

现在,如果我还想包含其他文件:

include:
  - project: 'my-group/my-project'
    file: 'test1.yml'
  - project: 'my-group/my-project'
    file: 'test2.yml'
Run Code Online (Sandbox Code Playgroud)

测试2.yml:

stages:
 -test_stage2

test_stage2:
 stage: test_stage2
 script: //some script
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

此 GitLab CI 配置无效:test_stage 作业:stage 参数应为 test_stage2

所以我必须明确添加阶段:

    include:
      - project: 'my-group/my-project'
        file: 'test1.yml'
      - project: 'my-group/my-project'
        file: 'test2.yml'
   stages:
      -test_stage1
      -test_stage2
Run Code Online (Sandbox Code Playgroud)

它有效。
这是为什么?
我是否能够以某种方式仅包含多个文件并完成所有阶段而不声明它们?

Ale*_*hin 6

您需要定义阶段,以便 GitLab CI 知道阶段的顺序

请参阅文档

我是否能够以某种方式仅包含多个文件并完成所有阶段而不声明它们?

如果您想有多个阶段,则不需要。您需要告诉 GitLab CI 哪个阶段是第一个、第二个等等,以便每个阶段的所有作业都可以在进入下一阶段之前运行。这给了我们一个管道。

test顺便说一句,默认阶段是。如果您不提供stage作业的属性,它将被分配到阶段test