簡體   English   中英

為TFS(VSO)構建指定(git)源分支

[英]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)
  1. 有沒有一種方法可以指定分支+提交,而無需使用tags(*)。
  2. 如果在多個分支中找到提交哈希怎么辦? (例如git cherry-pick

(*)其中許多是工作分支中的伙伴構建,創建臨時標簽會污染該名稱空間或需要進行垃圾收集。

(**)不能使用refs/heads/...構建必須與特定的提交相關,而不是HEAD。

“源分支”列應在“構建定義”中顯示“手動構建的默認分支”的名稱。 例如,如果您在“構建定義”中選擇用於手動構建的默認分支,則會在完成的構建中看到相應的“源分支”,但是如果您將手動構建的默認分支留為空白,則“源分支”將顯示(沒有分支),請參見以下屏幕截圖:

在此處輸入圖片說明

在此處輸入圖片說明

因此,您需要為“手動”構建指定“默認”分支,然后您將獲得正確的“源”分支。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM