繁体   English   中英

Gitlab CI 根据合并请求自动运行管道

[英]Gitlab CI automatical run pipeline on merge request

我有以下管道。 创建合并请求后,创建了状态为失败分离合并请求管道(app1 - 无阶段/作业)。 在下面管道的 scope 中,需要在创建合并请求时运行管道,并且在合并更改后主要。 此处描述的流程Gitlab CI 子管道下面的管道不起作用。


workflow:
    rules:
        - if: '$CI_PIPELINE_SOURCE == "schedule"'
        - if: '$CI_PIPELINE_SOURCE == "web"'
        - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
        - if: '$CI_PIPELINE_SOURCE == "push"'

stages:
    - child-pipelines

app1:
    stage: child-pipelines
    variables:
        COMPONENT NAME: 'app1'
    trigger:
        include:
        - local: .ci/.gitlab-ci.yml
        strategy: depend
    rules:

        - if: $CI_PIPELINE_SOURCE == "merge_request_event"
          changes:
            - test1/**/*
          variables:
            DEPLOY_RELEASE: '11111'

        - if : '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "main"'
          changes:
            - test1/**/*
          variables:
            DEPLOY_RELEASE: '222222'
app2:
    stage: child-pipelines
    variables:
        COMPONENT NAME: 'app1'
    trigger:
        include:
        - local: .ci/.gitlab-ci.yml
        strategy: depend
    rules:

        - if: $CI_PIPELINE_SOURCE == "merge_request_event"
          changes:
            - test2/**/*
          variables:
            DEPLOY_RELEASE: '11111'

        - if : '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "main"'
          changes:
            - test2/**/*
          variables:
            DEPLOY_RELEASE: '222222'


如果您想在创建合并请求并合并到主分支后运行管道,请查看以下示例:

workflow:
  rules:
    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
    - if: $CI_COMMIT_BRANCH == "main" && $CI_PIPELINE_SOURCE == "push"
    
job1:
  script:
    - echo "This job runs in merge request and also after merge to main branch"

根据Gitlab 文档

如果要为整个管道运行规则:

workflow:
  rules:
    - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
  
job1:
  script:
    - echo "This job runs in merge request pipelines"
    
job2:
  script:
    - echo "This job also runs in merge request pipelines"

如果您想在某个作业中运行规则:

job1:
  script:
    - echo "This job runs in merge request pipelines"
  only:
    - merge_requests

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM