gpt4 book ai didi

tfs - TFS CI构建-构建成功后更新自定义定义变量

转载 作者:行者123 更新时间:2023-12-04 12:03:53 25 4
gpt4 key购买 nike

我们已经设置了TFS CI Build,并且正在管理一个变量以维护版本控制,
我们希望在每次成功构建后进行更新,您知道如何做吗?

我写了PowerShell脚本

param([Int32]$currentPatchVersion)
Write-Host "Current patch version "$currentPatchVersion
$NewVersion=$currentPatchVersion + 1
Write-Host "New patch version "$NewVersion
Write-Host ("##vso[task.setvariable variable=PackageVersion.Patch;]$NewVersion")


但这只是即时应用。

我想将其永久应用于设置。

最佳答案

"##vso[task.setvariable variable=PackageVersion.Patch;]$NewVersion"只是在构建过程中设置变量值,而没有在构建定义级别中设置值。如果要永久更新构建定义中的变量值,可以调用Rest API来设置定义中变量的值。有关详细信息,请参阅以下部分:

创建一个"testvariable"作为示例:
enter image description here

使用以下代码创建Power Shell脚本并将其上传到源代码管理中:

[String]$buildID = "$env:BUILD_BUILDID"
[String]$project = "$env:SYSTEM_TEAMPROJECT"
[String]$projecturi = "$env:SYSTEM_TEAMFOUNDATIONCOLLECTIONURI"

$username="alternativeusername"
$password="alternativepassword"

$basicAuth= ("{0}:{1}"-f $username,$password)
$basicAuth=[System.Text.Encoding]::UTF8.GetBytes($basicAuth)
$basicAuth=[System.Convert]::ToBase64String($basicAuth)
$headers= @{Authorization=("Basic {0}"-f $basicAuth)}

$buildurl= $projecturi + $project + "/_apis/build/builds/" + $buildID + "?api-version=2.0"

$getbuild = Invoke-RestMethod -Uri $buildurl -headers $headers -Method Get |select definition

$definitionid = $getbuild.definition.id

$defurl = $projecturi + $project + "/_apis/build/definitions/" + $definitionid + "?api-version=2.0"

$definition = Invoke-RestMethod -Uri $defurl -headers $headers -Method Get

$definition.variables.testvariable.value = "1.0.0.1"

$json = @($definition) | ConvertTo-Json -Depth 999

$updatedef = Invoke-RestMethod -Uri $defurl -headers $headers -Method Put -Body $json -ContentType "application/json; charset=utf-8"


该脚本将获取当前的构建定义,并将 "testvariable"的值更新为 "1.0.0.1"。您需要启用替代凭证。

然后,您可以在构建定义中添加“ PowerShell脚本”任务以运行此脚本。

关于tfs - TFS CI构建-构建成功后更新自定义定义变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37881017/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com