[英]Specify (git) Source Branch for TFS (VSO) builds
我們有一個VSO Git存儲庫,TFS構建定義和一個腳本,可在特定提交時啟動構建。 問題(煩惱)是當在VSO中查看已完成的構建列表時,“源分支”列始終顯示“(無分支)”(但是“源版本”確實顯示了預期的提交ID)。
構建定義只是一個具有CheckoutOverride
參數的GitTemplate.12.xaml
,以下是構建排隊的方法:
$tfs = New-Object Microsoft.TeamFoundation.Client.TfsTeamProjectCollection($TfsProjectCollectionUrl, $TfsServiceAccount)
$buildServer = $tfs.GetService([Microsoft.TeamFoundation.Build.Client.IBuildServer])
$buildDefinition = $buildServer.GetBuildDefinition($TeamProjectName, $BuildDefinitionName)
$buildRequest = $buildDefinition.CreateBuildRequest()
$processParameters = [Microsoft.TeamFoundation.Build.Workflow.WorkflowHelpers]::DeserializeProcessParameters($buildRequest.BuildDefinition.ProcessParameters)
$processParameters.CheckoutOverride = $GitCommitHash;
$buildRequest.ProcessParameters = [Microsoft.TeamFoundation.Build.Workflow.WorkflowHelpers]::SerializeProcessParameters($processParameters)
$queued = $buildServer.QueueBuild($buildRequest)
git cherry-pick
) (*)其中許多是工作分支中的伙伴構建,創建臨時標簽會污染該名稱空間或需要進行垃圾收集。
(**)不能使用refs/heads/...
構建必須與特定的提交相關,而不是HEAD。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.