【问题标题】:TFS 2015 vNext Build - Get specific sources through scriptTFS 2015 vNext Build - 通过脚本获取特定源
【发布时间】:2018-02-03 09:12:34
【问题描述】:

我们正在本地运行 TFS 2015 Update 3。

我们有一个构建定义,可以从 Gated checkin 构建中获取最新的成功 drop 来运行测试。对于这些测试,我们还需要相同签入的源代码。 如果我们对新构建进行排队,它将获得最新的源,但这些源的变更集可能与上次成功的 drop 不同。主要是因为拉取source可能需要2分钟左右,如果此时已经完成了新的gated checkin,那么get之后的任务会得到比已经拉取的source更新的drop。

有没有办法让构建首先运行一个脚本,比如寻找最新成功构建的脚本。然后使用该版本中的变更集编号来获取该特定变更集的源代码?

【问题讨论】:

  • 为什么需要编译后应用程序的源代码才能测试编译后的应用程序?
  • 我们需要重建项目以进行 SonarQube 分析,并且我们需要确保源代码来自与复制的二进制文件相同的版本。此外,在我们的验收测试构建的情况下,我们希望确保使用相同版本的源代码,以便您确定您的测试运行,这意味着您期望的源代码版本。如果开发人员在您更新测试后立即获得更新版本。
  • @Nico 对于 SonarQube 分析,您可以在同一个构建中做到这一点,为什么要重建?您如何确保最新成功构建的变更集编号是您想要获得的确切变更集?我的意思是如果另一个构建在您触发构建之前完成。因此,据我了解,如果您想确保使用相同版本的源代码,您只需要使用特定的变更集手动构建即可。 (查询构建 > 选择特定的变更集)
  • 是的,但这需要我进行手动计划,或者使用另一个构建定义来拉取放置位置和关联的变更集编号。我不想手动安排构建来设置变更集编号。我希望在 Get 之前运行一个 powershell 脚本来指定变更集编号。这有意义吗?

标签: tfs


【解决方案1】:

我们无法阻止 Get source 步骤获取最新的源,我们只能添加命令行/批处理脚本或 PowerShell 步骤来运行脚本以获取特定的变更集版本源。然后复制具体的源码来构建。

在您的情况下,我认为这没有意义,如上所述,我们无法确保最新成功构建的变更集编号是您想要获得的确切变更集。

似乎唯一的方法是手动构建,具体要构建的变更集。

【讨论】:

    猜你喜欢
    • 2016-07-30
    • 2016-01-23
    • 1970-01-01
    • 2016-08-07
    • 2016-05-17
    • 1970-01-01
    • 2017-07-12
    • 1970-01-01
    • 2016-08-26
    相关资源
    最近更新 更多