简而言之,要求是验证我们最新发布的软件是否可以在应用最新的 Windows 更新和/或其他补丁后构建并安装。因此,构建服务器虚拟机将专门为此目的进行配置,并且构建仅需要在更新后运行。
由于此类更新通常会重新启动,因此我正在考虑触发构建和部署的服务器重新启动事件。 TFS 2017 中是否存在这样的选项?
如果无法通过 TFS 来完成此操作,那么我想,在启动时运行的 PowerShell 脚本应该可以工作?
没有这样的内置函数来实现这一点。但是,创建一个在启动时运行的 PowerShell 脚本应该可以工作。正如 Jessehouwing 所说,您可以使用以下命令创建脚本REST API https://www.visualstudio.com/en-us/docs/integrate/api/build/builds#queue-a-build来触发构建。
创建一个脚本来触发特定的构建定义。 (参考下面的示例)
-
启动时运行脚本:
Param(
[string]$collectionurl = "http://server:8080/tfs/DefaultCollection",
[string]$projectName = "ProjectName",
[string]$keepForever = "true",
[string]$BuildDefinitionId = "34",
[string]$user = "username",
[string]$token = "password"
)
# Base64-encodes the Personal Access Token (PAT) appropriately
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))
function CreateJsonBody
{
$value = @"
{
"definition": {
"id": $BuildDefinitionId
},
"parameters": "{\"system.debug\":\"true\",\"BuildConfiguration\":\"debug\",\"BuildPlatform\":\"x64\"}"
}
"@
return $value
}
$json = CreateJsonBody
$uri = "$($collectionurl)/$($projectName)/_apis/build/builds?api-version=2.0"
$result = Invoke-RestMethod -Uri $uri -Method Post -Body $json -ContentType "application/json" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)