我有Teamcity运行构建,它具有* .msi安装程序的工件输出,我需要标记成功和失败的测试构建,类似于
<filename>_<build_status>.msi
即使某些测试失败,我也设置了TC来构建安装程序,以便将它发送给我们的测试人员 . 所以问题是从TeamCity环境中接收构建状态,而不使用REST .
我意识到您说您不想使用REST,但您需要做的就是对此URL执行GET请求,替换您的构建配置ID . IMO这是最简单的方法(前提是安装程序构建配置是一个单独的构建)
/httpAuth/app/rest/builds/buildType:Installer_Build/status
如果您需要帮助实现这一点,请告诉我 .
1)添加要设置为GET请求输出的参数
2)添加PowerShell步骤并将代码作为源代码运行 - Get Build Status Gist
3)更新下面突出显示的相关参数以匹配您的设置
希望这可以帮助
我用于其他SO问题剂量的这个答案也适用于这个 .
它适用于TeamCity Enterprise 2017.1.2(build 46812)
Here你可以找到我的原始答案 .
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12; $buildId = "%teamcity.build.id%" function TeamCityBuildStatus { param ( [string] $ServerUrl, [string] $UserName, [string] $Password, [string] $BuildId ) $client = New-Object System.Net.WebClient $pair = "$($UserName):$Password" $encodedCreds = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($pair)) $client.Headers.Add("Authorization", "Basic $encodedCreds") $url = "https://$ServerUrl/httpAuth/app/rest/builds/$buildId/status" $status = $client.DownloadString($url) return $status -eq "SUCCESS" } $status = TeamCityBuildStatus -ServerUrl $teamcityUrl -UserName $teamcityUser -Password $teamcityPass -BuildId $buildId Write-Host "##teamcity[setParameter name='Status' value='$status']"
2 回答
我意识到您说您不想使用REST,但您需要做的就是对此URL执行GET请求,替换您的构建配置ID . IMO这是最简单的方法(前提是安装程序构建配置是一个单独的构建)
如果您需要帮助实现这一点,请告诉我 .
实施
1)添加要设置为GET请求输出的参数
2)添加PowerShell步骤并将代码作为源代码运行 - Get Build Status Gist
3)更新下面突出显示的相关参数以匹配您的设置
希望这可以帮助
我用于其他SO问题剂量的这个答案也适用于这个 .
它适用于TeamCity Enterprise 2017.1.2(build 46812)
Here你可以找到我的原始答案 .