能否在GitLab合并请求中复用分支流水线?
GitLab合并请求复用分支流水线方案
当然可以实现这种场景下的分支流水线复用,以下是几种实用的配置方式:
通过流水线规则跳过无变更的合并请求流水线
在.gitlab-ci.yml的workflow部分添加判断逻辑,当合并请求的源分支和目标分支提交完全一致时,直接跳过新流水线的创建:workflow: rules: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' && $CI_MERGE_REQUEST_SOURCE_BRANCH_SHA == $CI_MERGE_REQUEST_TARGET_BRANCH_SHA when: never - when: always复用分支流水线的作业结果
针对具体作业,配置依赖于源分支流水线的对应作业,直接复用其产物和执行结果,不用重新跑任务:test_job: stage: test rules: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' needs: - project: $CI_PROJECT_PATH job: test_job ref: $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME artifacts: true - when: on_success基于提交SHA精准判断跳过流水线
如果要确保合并请求的提交和源分支最新提交完全一致时才跳过,用CI_COMMIT_SHA变量做判断:workflow: rules: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' && $CI_MERGE_REQUEST_SOURCE_BRANCH_SHA == $CI_COMMIT_SHA when: never - when: always
内容的提问来源于stack exchange,提问作者Ivan
相关产品推荐
相关产品推荐

