尽管启用了CI,为什么我的2008 Team Build无法在开发人员签入时触发
我有一个Team Foundation Server 2008安装和带有Team Build服务的单独计算机。
我可以创建团队构建,并在Visual Studio中或者通过命令行(成功完成的地方)手动触发它们。但是,尽管在构建定义上打勾了每个构建选项,但对源树的签入不会导致构建触发。更新:显然,我有一个启用CI选项的完全可用的构建定义。
源代码树的配置非常简单,可以在Main文件夹下或者Branch \ branchName文件夹下使用代码。每个代码分支(包括主代码)都有一个与其中包含的解决方案文件相关的标准Team Build定义。与默认设置相比,唯一的变化是构建服务器的工作文件夹。即对于main,由于路径长度,这是Server:" $ \ main" Local:" c:\ build \ main"。
我唯一能猜到的(可能是红色鲱鱼)是开发人员工作区可能有些奇怪。当前,每个开发人员都将Server:" $ "映射到local:" c:\ tfs ",以便所有分支只有一个工作区。这主要是为了避免重新映射一些开发人员以前遇到的问题。但是我看不到这将如何影响CI。
更新:间接找到答案;请在下面阅读
解决方案
回答
从团队资源管理器中选择团队项目,然后右键单击Builds文件夹。选择一个新的构建定义,然后选择触发器选项卡。将单选按钮移动到"构建每个签入(更多构建)"
更多信息可以在这里找到
MSDN如何:创建内部版本定义
回答
TFS应用程序服务器上的日志中是否有任何错误?是否有任何迹象表明它试图点火但失败了?
回答
好吧,我在几个死胡同之后找到了答案。最后,我无意中修复了此问题,同时又修复了另一个问题。基本上,我们只是为构建打开了单元测试的自动执行功能。该测试将成功运行,但随后该构建将立即爆炸并显示一条消息,提示它无法向构建放置文件夹报告。
发生的事情是,尽管Build服务在一个帐户下运行并拥有一组权利;实际上,某些功能是通过TFSService帐户驱动的。浪费了一堆权限后,我的测试报告了。然后我注意到构建已经开始在签入时触发;我无法确切告诉我们是哪个权限解决了此问题,但希望此答案至少可以使人们走上正确的道路。
另一个注意事项是,由于工作空间映射冲突,一些构建开始失败,这是一个单独的问题,我通过使用Team Foundation工具的Attrice Sidekicks删除了一些过时的工作空间来解决。
希望这对其他人有帮助。