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

Azure Pipelines中如何处理作业间中间构建文件且不占用永久存储

Azure Pipeline中间构建工件存储优化方案

方案1:设置中间工件短保留周期

在上传三个构建作业的工件时直接指定最短保留时长,产物到期后会被系统自动清理:

  • 在PublishPipelineArtifact任务中添加retentionDays参数,最小可设置为1天,远短于流水线默认的保留周期,可大幅降低不必要的存储占用
  • 配置示例:
- task: PublishPipelineArtifact@1
  inputs:
    targetPath: '$(Build.ArtifactStagingDirectory)/cmake-build'
    artifact: 'cmake-build-output'
    retentionDays: 1

如果需要预留问题排查时间,可根据需求调整为2-3天即可。

方案2:使用流水线缓存传递中间产物

不需要保留中间产物用于排查时,可使用流水线缓存替代正式工件完成作业间的产物传递:

  • 缓存默认不会展示在工件页面,也不会被计入长期工件存储,到期后自动清理
  • 构建作业上传缓存配置示例:
- task: Cache@2
  inputs:
    key: 'cmake-build | "$(Build.BuildId)"'
    path: '$(Build.ArtifactStagingDirectory)/cmake-build'
    cacheHitVar: 'CMAKE_CACHE_HIT'
  • 打包作业拉取缓存配置示例:
- task: Cache@2
  inputs:
    key: 'cmake-build | "$(Build.BuildId)"'
    path: '$(Build.ArtifactStagingDirectory)/cmake-build'

你可以给三个构建作业分别配置独立的缓存key,用唯一的构建ID绑定,确保同一个流水线运行的作业能拿到对应版本的产物。

方案3:打包完成后调用接口删除中间工件

如果需要实现中间产物用完即删,可在打包作业最后调用Azure DevOps内置接口删除中间工件,仅保留最终的nsis安装程序工件:

  • 先给流水线的构建服务账号授予「删除工件」权限
  • 打包作业最后添加脚本任务,调用对应接口删除指定名称的三个中间工件即可。

可选优化

如果三个构建作业和打包作业可调度到同一个代理运行,可直接通过代理本地工作目录传递产物,完全不需要上传工件,既能节省存储也能提升流水线运行效率。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 04:06:03