【发布时间】:2012-01-03 13:01:57
【问题描述】:
如果你有一个项目在构建下一个之前构建一个项目,但下一个需要知道第一个构建的“路径”,是否有可能得到这个?
例如:
项目 A 具有构建配置 A 和构建配置 B。
构建配置 B 依赖于构建配置 A。如果没有构建配置 B,它将需要访问构建配置 A 的路径。有没有办法获得这个?
【问题讨论】:
标签: build-process build-automation teamcity
如果你有一个项目在构建下一个之前构建一个项目,但下一个需要知道第一个构建的“路径”,是否有可能得到这个?
例如:
项目 A 具有构建配置 A 和构建配置 B。
构建配置 B 依赖于构建配置 A。如果没有构建配置 B,它将需要访问构建配置 A 的路径。有没有办法获得这个?
【问题讨论】:
标签: build-process build-automation teamcity
最简单的方法是在 A 中定义一个自定义结帐目录,并在 B 中使用相同的硬编码值。
如果您使用 TeamCity 快照或工件依赖项,您可以使用 %dep.btXXX.teamcity.build.checkoutDir% 获取依赖项构建的签出目录。但是,这在 6.5.0-6.5.5 TeamCity 版本中不起作用,请参阅问题 TW-18715 中的详细信息和解决方法。
但是,您确实应该避免从另一个版本访问一个版本的签出目录。如果需要 A 的来源,可以在 B 中查看;如果您输出 A 的构建,则将输出发布为构建的工件,然后使用 TeamCity 工件依赖项是要走的路。在这两种情况下,额外使用 TeamCity 快照依赖项将确保两个构建使用相同的源快照,这可能是您需要的。
【讨论】:
如果您有一个代理,并且只有一个代理,那么您可以尝试使用之前构建的路径。
但我不建议这样做,因为如果您有两个代理,或者将来扩大到两个代理,那么您的项目可能会建立在不同的代理上;这意味着您的依赖项工作目录不会在同一台机器上,或者它会过时,因为最新版本是在其他地方构建的。
我假设您正在寻找第一个构建的路径以获取其输出?
如果是这样,我们用于在项目之间共享依赖项的方法是将每个项目的输出签入到我们的源代码管理中,然后每个需要输出的项目只需将它们签出。
【讨论】: