【问题标题】:How to programmatically set the "Retain Indefinitely" field when a build successfully completes?构建成功完成后,如何以编程方式设置“无限期保留”字段?
【发布时间】:2016-07-18 12:11:52
【问题描述】:

我正在寻找一种方法来设置构建完成时的无限期保留字段。

也许使用 PowerShell 脚本作为构建步骤?

【问题讨论】:

  • 您在使用发布管理吗?根据这篇文章,它似乎是为所有构建自动设置的:stackoverflow.com/questions/26259004/… 甚至还有一个关于如何修改构建脚本以删除“无限期保留”的答案。也许您可以利用该 mod 撤消它,启用它?
  • 添加 Vs-Team-Services 标签,因为它使用相同的构建基础架构。

标签: tfs azure-devops tfsbuild tfs-2015


【解决方案1】:

为了方便使用 vNext 构建的搜索者,您可以使用 Powershell 脚本来执行此操作。

您需要在 buid 选项中“允许脚本访问 OAuth 令牌”。

$buildId = $env:BUILD_BUILDID # the currently running build
"Build ID: $buildId"

$keepforever = @{
    keepforever='true'
}

$jsonKeepForever = $keepforever | ConvertTo-Json -Depth 100

$uriForBuildUpdate = "$($env:SYSTEM_TEAMFOUNDATIONCOLLECTIONURI)$($env:SYSTEM_TEAMPROJECTID)/_apis/build/builds/" + $buildID + "?api-version=2.0"

$result = Invoke-RestMethod -Uri $uriForBuildUpdate -Method Patch -Body $jsonKeepForever -ContentType "application/json" -Headers @{ Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN" }

Write-Verbose "Result: $result" -Verbose

"********************************"
"Build set to retain indefinitely"
"********************************"

【讨论】:

    【解决方案2】:

    查看"Build Updating Tasks" extension。它包含一个构建保留任务。它完全符合您的需要。如果我没记错的话,你确实需要在 TFS 的更新 3 上。

    【讨论】:

    • 半作品,但我有一个401未经授权的异常,但我对此发表了评论,并给了作者反馈。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-18
    • 2021-03-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多