You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure DevOps:如何将已排队的多个提交合并构建?

解决多提交触发重复排队构建的方案

可以合并后续提交(B、C)进行单次构建,具体实现取决于你使用的CI/CD工具,以下是通用思路和主流工具的落地操作:

核心逻辑

当新提交触发构建时,检查当前是否存在同分支的未执行/排队中构建,若有则取消旧的排队任务,只保留最新提交对应的构建;部分工具支持直接将新提交合并至已有排队任务中。

主流CI/CD工具的实现方式

Jenkins

  • 借助Build Blocker Plugin或Pipeline逻辑判断:在Pipeline中添加步骤,触发新构建时调用Jenkins API查询同分支的排队任务,取消之前的任务。
  • 示例Pipeline代码片段:
pipeline {
    agent any
    options {
        disableConcurrentBuilds()
        skipDefaultCheckout()
    }
    stages {
        stage('清理旧排队任务') {
            steps {
                script {
                    def currentBuild = currentBuild
                    def job = Jenkins.instance.getItemByFullName(env.JOB_NAME)
                    job.builds.each { build ->
                        if ((build.isInQueue() || build.isBuilding()) && build != currentBuild) {
                            build.doStop()
                        }
                    }
                }
            }
        }
        // 后续构建步骤...
    }
}
  • 也可启用GitHub Branch Source Plugin的自动触发抑制功能,或通过Build Discarder自动清理旧排队任务。

GitLab CI/CD

  • 在项目设置→CI/CD→General pipelines中开启Auto-cancel redundant pipelines,选择"When a new pipeline starts for the same branch",新提交(B、C)触发时会自动取消之前未执行的排队管道,仅保留最新的。
  • 也可在.gitlab-ci.yml的workflow中添加规则:
workflow:
  rules:
    - if: '$CI_COMMIT_BRANCH == "main"'
      when: always
    - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH != "main"'
      when: never

GitHub Actions

  • 使用cancel-workflow-action在Workflow开头取消同分支的旧排队/运行中任务:
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: 取消旧任务
        uses: styfle/cancel-workflow-action@0.11.0
        with:
          access_token: ${{ github.token }}
      # 后续构建步骤...
  • 需确保仓库Actions设置中的"Workflow permissions"为Read and write permissions,保证动作有权限取消旧任务。

其他通用解决思路

  • 流程规范优化:要求开发者推送代码前合并最新分支内容,减少频繁提交,但这属于团队协作规范,非工具层面解决方案。
  • 延迟触发配置:设置构建触发的静默期(如5分钟),静默期内的多个提交会合并为一次触发,部分CI工具支持此配置(如Jenkins的Quiet Period)。

内容的提问来源于stack exchange,提问作者user19280161

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 05:35:23