簡體   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