首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >配置GIT lab管道

配置GIT lab管道
EN

Stack Overflow用户
提问于 2021-02-02 11:50:44
回答 1查看 26关注 0票数 0

我想以这样一种方式配置我的流水线,即根据传递参数选择阶段。例如,我有3个场景,场景1,场景2和场景3。

代码语言:javascript
复制
Scenario 1 have following stages
stages:
  - deploy
  - test
  - job2


Scenario 2 have following stages
stages:
  - deploy
  - test
  - regression


Scenario 3 have following stages
 stages:
  - deploy
  - test

我想这样配置我的yml,取决于这些流水线执行的任何参数或条件。

代码语言:javascript
复制
Like 
 if(true){ 
   Scenario 1
}else if {
  Scenario 2
 }.....

我不想使用子管道。

如果可能的话,请告诉我。

EN

回答 1

Stack Overflow用户

发布于 2021-02-02 23:31:37

在Gitlab中无法定义这样的管道。尽管您可以将模板或作业include.gitlab-ci.yml文件中,但在运行时它仍然是一个管道。

在作业上使用rules关键字可以得到相同的结果(只根据需要的条件运行一些作业)。例如,您的.gitlab-ci.yml文件可能如下所示:

代码语言:javascript
复制
stages:
  - deploy
  - test
  - regression

Scenario 1 Deploy Job:
  stage: deploy
  when: never
  rules:
    - if: "$CI_COMMIT_REF_NAME == main && $CI_PIPELINE_SOURCE == trigger"
      when: always
      start_in: 3 hours
    - if: "$CI_PIPELINE_SOURCE == schedules"
      when: manual
      allow_failure: true

Scenario 1 Test Job:
   ...

rules关键字允许您定义条件,以决定何时将作业添加到正在运行的管道中。如果一个作业有多个if(如“场景1部署作业”),它们将被视为OR (如果这样或那样),但是多个内联条件可以使用&&或||。

因此,总而言之,管道只能有一组阶段,项目只能有一个管道定义,但您可以控制何时运行每个作业。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66003406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档