【发布时间】: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