【问题标题】:Gitlab - Always run build for every stageGitlab - 始终为每个阶段运行构建
【发布时间】:2021-07-14 17:19:53
【问题描述】:

我有 3 个阶段 Build,DEV_DEPLOY,QA_DEPLOY

我想为 DEV_DEPLOY 和 QA_DEPLOY 两个阶段运行构建。在下面的屏幕截图中进行了解释。对我来说,当我合并到 QA 时,只有 QA_DEPLOY 正在运行,构建没有运行。

要求 - 当开发人员推送代码构建和部署到开发阶段应该运行,当团队领导将分支从开发再次合并到 qa 分支时构建和部署到 QA 应该运行。

stages:
  - build_proj
  - dev_deploy        
  - qa_release    
  
build: 
  stage: build_proj
  script:
    -  run build  

dev_deploy: 
  stage: dev_develop
  environment: DEV
  only:
    - develop   
    
qa_release:    
  stage: qa_release 
  dependencies:
    - build_proj 
  environment: QA
  rules:
    - if:  $CI_PIPELINE_SOURCE == "merge_request_event"
    - if:  $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == "develop"
 

【问题讨论】:

    标签: continuous-integration gitlab gitlab-ci pipeline continuous-deployment


    【解决方案1】:

    您可以在管道中尝试以下规则:

    stages:
      - build
      - deploy      
      
    build: 
      stage: build
      script:
        -  echo "run build"
      rules:
        - if: '$CI_COMMIT_BRANCH == "develop"' 
        - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH == "release"'   
    
    dev_deploy: 
      stage: deploy
      script:
        - echo "deploy dev"
      environment: DEV
      rules:
        - if: '$CI_COMMIT_BRANCH == "develop"'
        
    qa_release:    
      stage: deploy
      script:
        - echo "deploy release"
      environment: QA
      rules:
        - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH == "release"'  
    
    • build 阶段仅在提交到 develop 以及合并请求到 release 分支时运行
    • dev_deploy 阶段仅针对develop 上的提交运行
    • qa_release 阶段仅用于合并请求到 release 分支

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-26
      • 2021-04-30
      • 2022-11-14
      • 2021-10-29
      • 2020-05-09
      • 1970-01-01
      • 2016-01-29
      • 1970-01-01
      相关资源
      最近更新 更多