1

我正在尝试使用 Jenkins 设置来改进我们的 CI 策略,该策略目前包括由 Windows 任务调度程序启动的自动构建工作室脚本。我要集成的源代码是一个 .NET 解决方案,我正在尝试通过 MSBuild 构建它。

作为我们的 SCM,我们使用 StarTeam (v. 10.4),当 Jenkins 尝试将文件检出到工作区并编译解决方案时,我目前遇到了问题。

Jenkins StarTeam 插件未检出某些文件(似乎始终相同)。显然,由于这些文件丢失,我无法将 Jenkins 用于 CI。我的自动化构建工作室脚本没有遇到这个问题:这里所有文件都已正确签出。

从我的角度来看,没有被检出的 C# 文件没有什么特别之处:它们在不同的项目中,包含不同类型的数据(一些 winforms,一些接口),它们都是同一个视图的一部分,似乎已以相同的方式添加到 StarTeam 等。

Jenkins 中的 StarTeam 轮询日志没有显示任何内容。我不知道是否可以使用某种调试模式来追踪问题的性质?

也许我应该补充一点,目前 Jenkins 在我的台式电脑(Win7)上本地运行,同时我正在尝试设置。我正在使用默认位置 c:\Program Files(x86)\Jenkins\Jobs\JOB_NAME\Workspace 来集成我的解决方案。

我希望你们中的一些人可能对问题所在有所了解,因为我真的希望有一个比我们目前拥有的更好的 CI 设置。

4

2 回答 2

1

我设法确定了问题:显然,我们团队中的一位开发人员有时会在将文件夹添加到 StarTeam 时设法更改文件夹的默认位置属性。因此,我们不是在相对于项目根目录的位置签入文件,而是在我们的存储库中得到一个绝对路径。

我能够通过删除原始位置中的文件(即不在 Jenkins 作业文件夹中)来验证这一点,然后在 Jenkins 结帐期间观察文件重新出现在其原始位置。真正让我进一步调查的原因是尝试使用 cmd-line 实用程序从 StarTeam 签出文件,以将文件签入不同的位置。当这仍然没有得到所有文件的检查时,我认为詹金斯不再是罪魁祸首,而是其他一些问题。

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

于 2013-04-15T17:43:34.707 回答
0

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

StarTeam 在客户端/SDK 方面具有相对较好的前向/后向兼容性,因此理论上您可以针对现有的 2008 R2 客户端安装运行 2009/2009R2 SDK。

至于 Jenkins 中的调试模式,您可以通过运行以下语法在命令行中激活它:

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

于 2013-04-15T13:08:34.527 回答