2013-04-10 62 views
1

我正在试验Jenkins设置以改进我们的CI策略,该策略目前由一个Windows任务调度程序启动的自动构建Studio脚本组成。我想要集成的源代码是一个.NET解决方案,我试图通过MSBuild构建。Jenkins没有从Starteam检出所有文件

由于我们的SCM,我们使用的StarTeam(诉10.4),目前我遇到问题时,詹金斯试图文件签出到工作区和编译的解决方案。

有某些文件(它似乎始终是相同的),它没有得到签出在詹金斯的StarTeam插件。显然,由于这些文件丢失,我无法使用Jenkins的CI。我没有遇到与我们的自动构建Studio脚本有关的问题:在这里,所有文件都被正确检出。从我的角度来看,没有被检出的C#文件没什么特别的:它们在不同的项目中,包含不同类型的数据(一些winforms,一些接口),它们都是同样的观点,似乎已被添加到StarTeam中以同样的方式等

的StarTeam中查询日志中詹金斯没有透露任何。我不知道是否有某种调试模式可以用来追踪问题的性质?

也许我应该补充说,詹金斯当前在我的台式电脑(Win7)上运行,而我正在试验一个设置。我使用默认位置 c:\ Program Files(x86)\ Jenkins \ Jobs \ JOB_NAME \ Workspace 来集成我的解决方案。

我希望有你们的可能对这个问题是什么想法,因为我真的想有一个更好的CI设置比我们目前有到位。

回答

1

我设法找出问题:显然,在开发商之一我们的团队有时会在将文件夹添加到StarTeam时设法更改文件夹的默认位置属性。因此,我们不是使用与项目根目录相关的位置来检入文件,而是使用我们的存储库中的绝对路径。

我能够通过删除原始位置中的文件(即,不在Jenkins作业文件夹中)来验证这一点,然后观察Jenkins结帐期间文件再次出现在其原始位置。真正导致我进一步调查的是,尝试使用cmd-line实用程序从StarTeam中检出文件,以将文件检入到不同的位置。当这仍然没有得到所有的文件检出时,我认为詹金斯不再被指责,而是其他事情是错误的。

我以前没有注意到这一点的原因部分是由于我与StarTeam一点经验,并且由于所有使用相同的映射和路径在我们的发展环境,我们的团队开发。因此,绝对路径将文件放置在所有机器上的正确位置,因为所使用的路径是相同的。

+0

StarTeam有很多命令行选项可用于控制要检出的内容,以及如果最终必须编写自己的脚本来处理结帐,那么可以使用这些选项。本文档详细介绍了它们:http://techpubs.borland.com/starteam/2009/en/ST_CmdTools_Help_en.pdf – 2013-04-23 18:09:08

0

实质上,StarTeam SDK在与任何外部应用程序集成时处理文件的签出。你正在运行的客户端10.4版本看起来已经过时了,所以如果不是整个客户端,我会建议升级SDK版本。

StarTeam中具有较好的向前/向后兼容性,当涉及到客户端/ SDK,所以你可以在理论上对现有的2008 R2客户端安装运行2009/2009R2 SDK。

就运行下面的语法内詹金斯调试模式,你可以在命令行中激活此:

java -Drally.debug="true" -jar jenkins.war --httpPort=9000

+0

感谢您提供有关如何调试Jenkins的信息。更新StarTeam是不可能的。我们组织中的下一步行动(SCM明智的做法)将是TFS,但我迫不及待想要实现这一目标,所以我选择将Jenkins作为“TFS-light”解决方案来实现CI服务器的体验。 – llykke 2013-04-15 17:46:49

+0

嗨,是的工作目录与替代工作目录可能是一个很难理解的完全理解的元素。尽管能够将文件检出到另一个位置是一件好事,但如果您有一个团队在相同的本地环境中部署StarTeam,则可能会导致问题。很高兴你终于到了它的底部。 – GraemeD 2013-04-16 10:49:10

相关问题