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

Azure Pipelines多阶段管道如何不重跑全流程用最新提交重跑失败阶段

多阶段流水线指定阶段拉取最新提交重跑解决方案

默认情况下CI/CD流水线首次触发时会拉取所有关联仓库的提交快照,后续重跑单个阶段时会复用该快照,不会主动拉取新的提交,这是重跑E2E阶段始终使用旧代码的核心原因。你可以通过以下几种方案实现不重跑全流水线,直接拉取最新E2E代码执行测试:

  • 方案1:在E2E阶段增加动态拉取代码逻辑
    无需改动流水线全局配置,直接在E2E阶段的执行脚本开头添加主动拉取最新E2E仓库代码的逻辑,跳过流水线默认的代码快照复用机制,示例脚本如下:
    # 清理本地缓存的旧E2E测试代码
    rm -rf ./e2e-test
    # 拉取E2E测试仓库指定分支的最新提交
    git clone --depth=1 -b main <E2E测试仓库的内部地址> ./e2e-test
    cd ./e2e-test
    # 执行原有E2E测试命令
    yarn test:e2e
    
    该方案适配所有CI/CD工具,改动量最小,调整后重跑E2E阶段会自动拉取最新代码执行。
  • 方案2:开启流水线重跑时的代码刷新配置
    主流CI/CD工具均支持配置重跑阶段时重新拉取代码的能力:
    • Jenkins:重跑失败阶段时在弹窗中勾选Refresh repository state before running,或在E2E阶段的checkout步骤中添加poll: true配置,强制每次执行该阶段都拉取最新代码。
    • GitLab CI:在E2E任务的配置中新增变量GIT_STRATEGY: clone,重跑时会重新克隆所有关联的代码仓库,若E2E仓库以子模块形式关联,额外添加GIT_SUBMODULE_STRATEGY: recursive配置即可。
    • GitHub Actions:重跑失败任务时勾选Re-run all jobs with latest commit选项,即可拉取E2E仓库的最新提交执行。
  • 方案3:配置E2E仓库联动触发规则
    给E2E测试仓库配置Webhook,当E2E代码合并到主分支时,自动触发对应已完成QA部署的流水线的E2E阶段执行,不需要手动重跑,自动传递最新的E2E提交ID到流水线。

注意:若你的测试仓库是通过依赖声明、版本锁的形式关联到主流水线,需要先解除对应版本锁定规则,才可拉取到最新提交。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 01:54:03