我希望Deploy Code仅在Build& amp;测试代码构建成功,因此我设置了快照依赖项.
快照依赖性是否意味着Deploy Code将检出与Build& amp;相同的SVN修订版.测试代码然后针对该checkout运行NAnt脚本,该脚本不包含编译器生成的构建后文件?或者,快照依赖于Build&部署代码中的测试代码意味着NAnt将针对Build&的构建后工作目录文件运行.构建代理上的测试代码?
更新:
似乎我将快照依赖于Build& amp;部署代码的测试代码,我已经构建了Build& amp;的最新版本.测试代码,我的NAnt脚本将部署Build&构建版本的构建后文件.测试代码.
我仍然想确认我理解这个概念,因为我不太了解Team City文档.我想我应该确保Deploy Code在与Build& amp;相同的构建代理上运行.测试代码,否则我可能会遇到Deploy Code检出SVN版本然后只部署预构建代码文件的情况.它是否正确?
我的困惑主要是因为您似乎必须为部署代码设置VCS.那是因为它需要将修订版号与快照依赖关系进行比较吗?
解决方法
A snapshot dependency from build configuration A to build
configuration B enforces that each build of A has a “suitable” build
of B so that both builds use the same sources snapshot (used sources
revisions correspond to the same moment).
因此,快照依赖性的想法是,您可以针对与已成功运行它的另一个构建完全相同的代码库运行构建.
如果您希望“部署代码”构建仅在“构建和测试代码”成功运行后运行,请在第二个构建中创建快照依赖项,并确保将其设置为“仅使用合适构建的成功构建”.
请记住,这与人工制品无关;第二个构建将简单地拉出相同的代码库并重新编译它.如果要部署从第一个构建创建的人工制品,那么您希望查看artefact依赖项.这正是保罗在答案中所写的,也是正确的方法.
关于您的更新,听起来这些后期构建文件仅可用,因为它们在第一次构建后仍然在构建代理上.尝试在代理上运行第一个构建然后“清理源”并运行第二个构建.你会发现原始的编译输出不再存在而且会失败.这很重要,因为如果您有多个构建代理或者在两个构建之间花费一些时间,那么您根本无法依赖未保存为人工制品的输出.
是的,TeamCity文档令人困惑:)