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

如何在Azure DevOps工件源中将工件标记为‘Release’

解决工件标记为'Local'而非'Release'的问题

要让工件从'Local'转为'Release'获得防误删保护,核心是让发布流水线完成有效的工件消费+部署动作,并配置对应的保留策略,具体步骤如下:

  • 补全发布流水线的核心任务
    空作业无法触发工件状态变更,你需要在发布流水线中添加能关联上游工件的任务:

    • 添加Download Pipeline Artifacts任务,指定生成流水线的工件源,确保发布流水线能拉取到目标二进制文件;
    • 添加部署相关任务(比如文件复制、服务重启等),完成实际的部署动作,让流水线的执行逻辑形成完整闭环。
  • 在生成流水线中配置Release级保留策略
    不管是发布Pipeline Artifacts还是NuGet包,都需要在发布步骤中显式设置保留策略:

    • 若用Publish Pipeline Artifacts任务:找到「Retention policy」选项,选择Release,并设置保留时长(可勾选无限期保留);
    • 若用NuGet发布任务:勾选「Set retention policy」,将策略级别设为Release,开启防误删保护。
  • 标记部署完成状态
    在发布流水线的部署任务完成后,添加状态标记动作:

    • 如果是Azure DevOps环境,可直接使用Mark Deployment任务,选择对应的生成流水线构建,标记部署状态为成功;
    • 也可以通过REST API手动更新工件状态,示例PowerShell脚本:
      $token = "你的PAT令牌"
      $orgUrl = "https://dev.azure.com/你的组织名"
      $project = "你的项目名"
      $buildId = "目标生成构建ID"
      
      $headers = @{
          Authorization = "Bearer $token"
          Content-Type = "application/json"
      }
      
      $body = @{
          retentionPolicy = @{
              isEnabled = $true
              releaseRetention = @{
                  isEnabled = $true
                  retainIndefinitely = $true
              }
          }
      } | ConvertTo-Json
      
      Invoke-RestMethod -Uri "$orgUrl/$project/_apis/build/builds/$buildId?api-version=7.1-preview.7" `
                        -Method Patch `
                        -Headers $headers `
                        -Body $body
      
  • 验证触发逻辑
    确保发布流水线是由生成流水线的工件完成事件触发(而非手动执行空作业),只有当发布流水线成功完成完整的部署流程,系统才会自动将工件状态更新为'Release'。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 23:01:09