And*_*yTS 3 powershell tfs tfsbuild
我正在尝试自动化部署过程,作为其中的一部分,我需要从命令行运行我的发布版本.我可以使用命令这样做
.\TFSBuild start http://server-name:8080/tfs/project-collection project-name build-name priority:High /queue
它甚至为排队的构建返回一些代码 - Build queued. Queue position: 2, Queue ID: 11057.
我不知道的是,如何获取有关当前正在运行的构建的信息,或者从powershell命令行获取正在运行的构建的状态?最终目标是在构建完成后开始发布.
我已经拥有了所有必要的powershell脚本来从构建结果创建部署包,压缩它,复制到生产并安装在那里.我现在所需要的 - 知道我的构建何时成功.
此函数将等待使用TFSBuild.exe给出的队列ID进行构建:
function Wait-QueuedBuild {
param(
$QueueID
)
[void][Reflection.Assembly]::LoadWithPartialName('Microsoft.TeamFoundation.Build.Client')
[void][Reflection.Assembly]::LoadWithPartialName('Microsoft.TeamFoundation.Client')
$uri = [URI]"http://server-name:8080/tfs/project-collection"
$projectCollection = [Microsoft.TeamFoundation.Client.TfsTeamProjectCollectionFactory]::GetTeamProjectCollection($uri)
$buildServer = $projectCollection.GetService([Microsoft.TeamFoundation.Build.Client.IBuildServer])
$spec = $buildServer.CreateBuildQueueSpec('*','*')
do {
$build = $buildServer.QueryQueuedBuilds($spec).QueuedBuilds| where {$_.Id -eq $QueueID}
sleep 1
} while ($build)
}
Run Code Online (Sandbox Code Playgroud)
您可以获取TFSBuild.exe返回的ID,然后调用该函数.
$tfsBuild = .\TFSBuild start http://server-name:8080/tfs/project-collection project-name build-name priority:High /queue
Wait-QueuedBuild [regex]::Match($tfsBuild[-1],'Queue ID: (?<id>\d+)').Groups['id'].Value
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7634 次 |
| 最近记录: |