TFS:在服务器重新启动或 Windows 更新安装时触发构建的最佳方式

2024-05-02

简而言之,要求是验证我们最新发布的软件是否可以在应用最新的 Windows 更新和/或其他补丁后构建并安装。因此,构建服务器虚拟机将专门为此目的进行配置,并且构建仅需要在更新后运行。

由于此类更新通常会重新启动,因此我正在考虑触发构建和部署的服务器重新启动事件。 TFS 2017 中是否存在这样的选项?

如果无法通过 TFS 来完成此操作,那么我想,在启动时运行的 PowerShell 脚本应该可以工作?


没有这样的内置函数来实现这一点。但是,创建一个在启动时运行的 PowerShell 脚本应该可以工作。正如 Jessehouwing 所说,您可以使用以下命令创建脚本REST API https://www.visualstudio.com/en-us/docs/integrate/api/build/builds#queue-a-build来触发构建。

  1. 创建一个脚本来触发特定的构建定义。 (参考下面的示例)

  2. 启动时运行脚本:

    • 如何在计算机每次启动时运行批处理文件 https://www.computerhope.com/issues/ch000322.htm

    • 如何安排批处理文件在 Windows 中自动运行 10/8/7 http://www.thewindowsclub.com/how-to-schedule-batch-file-run-automatically-windows-7


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(使用前将#替换为@)

TFS:在服务器重新启动或 Windows 更新安装时触发构建的最佳方式 的相关文章

随机推荐