如何在gitlab-ci.yml中合并或添加一个新阶段,该阶段包含一个带有默认阶段和作业定义列表的通用模板yml

如何在gitlab-ci.yml中合并或添加一个新阶段,该阶段包含一个带有默认阶段和作业定义列表的通用模板yml,gitlab,gitlab-ci,Gitlab,Gitlab Ci,目前在我们的项目中,gitlab-ci.yml包含一个带有默认阶段和作业定义的通用模板yml。我想包括一个阶段和相应的工作具体到这个项目,它需要在模板yml中定义的阶段之间运行。下面是代表我正在处理的场景的示例yml文件 .mvn-template.yml gitlab-ci.yml 现在我想在这个项目中加入一个新的阶段,比如说合同测试 包装 集成测试 因此,契约测试应该在包之后和集成测试之前运行 由于这是特定于这个项目,我不能包括在共同的模板。因此需要包含在gitlab-ci.yml中 无

目前在我们的项目中,gitlab-ci.yml包含一个带有默认阶段和作业定义的通用模板yml。我想包括一个阶段和相应的工作具体到这个项目,它需要在模板yml中定义的阶段之间运行。下面是代表我正在处理的场景的示例yml文件

  • .mvn-template.yml
  • gitlab-ci.yml
  • 现在我想在这个项目中加入一个新的阶段,比如说合同测试

    • 包装
    • 集成测试
    因此,契约测试应该在包之后和集成测试之前运行

    由于这是特定于这个项目,我不能包括在共同的模板。因此需要包含在gitlab-ci.yml中

    无法想出如何执行此操作。我之前曾与GitHub合作,最近刚开始与GitLab合作

    我可以在通用模板中包含阶段,但不在其中定义各自的作业。并将作业定义包含在gitlab-ci.yml中?不确定这是不是正确的方法。也许有更好的选择来处理这种情况


    请帮忙。

    在我看来,你可以用两种不同的方式来做:

  • 在模板文件中添加阶段
    合同测试
    ,并在项目的
    .gitlab ci.yml
    中定义特定作业。配置将是有效的:gitlab将连接并扩展includes/anchors,以在最后构建一个gitlab ci注意:即使没有作业使用此阶段(一种空阶段),也可以定义阶段,它不会生成错误

  • 如果您不想将此“空阶段”包含在引用
    包含
    的所有项目中,您可以将
    阶段
    移动到模板之外,并将其放置在项目的
    .gitlab ci.yml
    中。与解决方案1一样,您需要在项目的
    .gitlab ci.yml
    中定义作业(不在模板中)


  • 在我看来,你可以用两种不同的方式来做:

  • 在模板文件中添加阶段
    合同测试
    ,并在项目的
    .gitlab ci.yml
    中定义特定作业。配置将是有效的:gitlab将连接并扩展includes/anchors,以在最后构建一个gitlab ci注意:即使没有作业使用此阶段(一种空阶段),也可以定义阶段,它不会生成错误

  • 如果您不想将此“空阶段”包含在引用
    包含
    的所有项目中,您可以将
    阶段
    移动到模板之外,并将其放置在项目的
    .gitlab ci.yml
    中。与解决方案1一样,您需要在项目的
    .gitlab ci.yml
    中定义作业(不在模板中)

  • stages:
      - build
      - static-analysis
      - unit-test
      - package
      - integration-test
    
    compile:
      stage: build
      tags:
        - docker
      artifacts:
        paths:
          - target/
        expire_in: 14 days
      script:
        - mvn $MAVEN_CLI_OPTS compile
      interruptible: true
      
    //and job definitions for - static-analysis
    //  - unit-test
    //  - package
    //  - integration-test
    
    include:
      - project: 'xxx/common-pipeline'
        ref: x.x.x
        file: '/.mvn-template.yml'
    ...