我正在尝试使用Jenkins设置来改进我们的CI策略,该策略目前包含一个由Windows任务调度程序启动的Automated Build Studio脚本。我想要集成的源代码是一个.NET解决方案,我试图通过MSBuild构建它。
作为我们的SCM,我们使用StarTeam(v.10.4),当Jenkins试图将文件签出到工作区并编译解决方案时,我目前遇到了问题。
某些文件(似乎总是相同)不会被Jenkins StarTeam插件检出。显然,由于缺少这些文件,我无法使用Jenkins进行CI。我的Automated Build Studio脚本没有遇到这个问题:这里所有文件都已正确检出。
从我的观点来看,C#文件并没有什么特别之处,它们没有被检出:它们在不同的项目中,包含不同类型的数据(一些winforms,一些接口),它们都是相同的观点,似乎已经以相同的方式添加到StarTeam等。
詹金斯的StarTeam民意调查日志没有透露任何内容。我不知道是否有某种调试模式可以用来追踪问题的本质?
也许我应该补充一点,目前Jenkins在我的台式机(Win7)上本地运行,而我正在尝试设置。我正在使用默认位置 c:\ Program Files(x86)\ Jenkins \ Jobs \ JOB_NAME \ Workspace 整合我的解决方案。
我希望你们中的一些人可能对这个问题有所了解,因为我真的希望有一个比我们现有的更好的CI设置。
答案 0 :(得分:1)
我设法识别问题:显然,我们团队中的一位开发人员有时会在将文件夹添加到StarTeam时设置更改文件夹的默认位置属性。因此,不是使用相对于项目根目录的位置检入文件,而是在我们的存储库中最终得到绝对路径。
我能够通过删除原始位置中的文件(即不在Jenkins作业文件夹中)来验证这一点,然后观察在Jenkins结帐期间文件重新出现在原始位置。真正让我进一步调查的是尝试使用cmd-line实用程序检查StarTeam中的文件,以将文件检入不同的位置。如果仍然没有检查出所有文件,我认为詹金斯不再受到责备,而是其他错误。
我以前没有注意到这一点的原因部分是由于我对StarTeam的经验不足以及我们团队中的所有开发人员在我们的开发环境中使用相同的映射和路径。因此,绝对路径将文件放在所有机器上的正确位置,因为使用的路径是相同的。
答案 1 :(得分:0)
基本上,StarTeam SDK在与任何外部应用程序集成时处理文件的签出。您正在运行的10.4版客户端似乎已经过时了,所以如果不是整个客户端,我建议升级SDK版本。
对于客户端/ SDK,StarTeam具有相对较好的前向/后向兼容性,因此理论上可以针对现有的2008 R2客户端安装运行2009 / 2009R2 SDK。
就Jenkins中的调试模式而言,您可以通过运行以下语法在命令行中激活它:
java -Drally.debug="true" -jar jenkins.war --httpPort=9000