【问题标题】:Specify (git) Source Branch for TFS (VSO) builds为 TFS (VSO) 构建指定 (git) 源分支
【发布时间】:2015-10-20 23:06:06
【问题描述】:

我们有一个 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. 有没有办法指定分支+提交,而不使用标签(*)。
  2. 如果在多个分支中找到提交哈希怎么办? (例如git cherry-pick

(*) 其中许多是工作分支中的伙伴构建,创建临时标签会污染该命名空间或需要垃圾收集。

(**) 不能使用 refs/heads/... - 构建必须与特定提交相关联,而不是 HEAD。

【问题讨论】:

    标签: git tfs tfsbuild


    【解决方案1】:

    “源分支”列应该在构建定义中显示“手动构建的默认分支”的名称。例如,如果您在构建定义中选择手动构建的默认分支,您将在已完成的构建中看到相应的“源分支”,但如果您将手动构建的默认分支留空,“源分支”将显示 (没有分支),请看下面的截图:

    因此,您需要为手动构建指定默认分支,然后您将获得正确的源分支。

    【讨论】:

    • 不幸的是,这不起作用。我检查了自己的构建定义,默认分支已经是refs/heads/master,但是当请求中指定CheckoutOverride时,新构建requests仍然显示(no branch)
    • 您是正确的,如果在 CheckoutOverride 中指定值,源分支将显示(无分支)。在我看来,Checkout Override 可以覆盖默认分支并提交,您可以同时从 master 和 branch 指定 Checkout Override 的值,因此 Source Branch 无法判断它是源分支。您可以尝试创建两个构建定义,一个用于 master,另一个用于分支,如果 checkout 覆盖提交属于 master/branch,则使用 master/branch 构建定义。
    • 是的,正如我在问题中指出的那样,提交可以在 >1 分支中,尽管在大多数情况下它是明确的。例如,当提交仅存在于单个分支中(例如,在合并到 master 之前的工作分支),那么在 CheckoutOverride 中指定这样的提交也将暗示一个分支。
    猜你喜欢
    • 2021-11-07
    • 2015-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多