6

我希望将我们的构建基础架构从 CC.NET 迁移到 TeamCity。诚然,在这一点上,TeamCity 非常环保。

一个潜在的阻碍是我们需要我们的构建配置与它构建的源代码一起进行版本控制。CC.NET 使这变得非常简单,并且是一个非常有用/强大的功能。

根据我的调查,您可以更改 TeamCity 存储其配置/数据的位置,但没有任何官方文档(也没有其他关于 SO 的主题)似乎提到将其放置在版本控制的位置,例如 TFS、Perforce 或 ClearCase。

因此,我想知道这是否可能和/或它是“完成的事情”?

如果 TeamCity 假定对任何配置文件进行 R/W 访问,并且底层 VCS 使文件 R/O 需要签入/签出语义,这是否会混淆 TeamCity 并使其停止工作。

这里有没有人有在 Team Foundation Server(或类似的)中控制 TeamCity 构建配置的经验?

谢谢,杰克

仅供参考 -一个版本如何控制 TeamCity 项目的配置?似乎是这里唯一类似的线程。 http://confluence.jetbrains.net/display/TCD7/How+To ... 和相关的官方文档谈论迁移配置和/或备份它,这很接近,但并不是一回事。

4

4 回答 4

3

这不是答案,但...

我们向 JetBrains 询问了他们对此的建议,并得到了以下回复:

到目前为止,还没有将配置设置存储在版本控制中的功能。设置以 XML 格式存储在磁盘上(在 TeamCity 数据目录 - http://confluence.jetbrains.net/display/TCD7/TeamCity+Data+Directory中),理论上可以将目录与版本控制同步。您可能想为该功能投票或在我们的问题跟踪器中观看它:http: //youtrack.jetbrains.com/issue/TW-2806

我看不到任何优雅的解决方案,因此认为最好的解决方案(最差的解决方案......)是:

  1. 将复杂的构建逻辑移动到版本控制的 MSBuild/Nant 脚本中;和
  2. 如果您有时间,请在源代码管理和 TeamCity 数据目录之间实施自定义同步服务。在这种情况下,您可能必须准备好处理需要不时手动合并的故障(不好玩:-()。

祝你好运,如果你找到一个好的解决方案,请分享:-D

于 2012-09-18T03:43:31.360 回答
3

这已在 TeamCity 9 中引入:

https://confluence.jetbrains.com/display/TCD9/Storing+Project+Settings+in+Version+Control

于 2014-11-06T19:51:23.370 回答
0

据我所知,这不受支持,但我推荐的一种方法是在构建期间调用存储在源代码管理中的批处理文件。批处理文件可以手动调用构建所需的命令,或者可以调用例如 FinalBuilder。这为构建过程提供了极大的灵活性。

于 2014-02-10T11:48:05.477 回答
0

很长一段时间以来,我一直想要一种源代码控制 TeamCity 配置的方法。我最终编写了一个 Windows 服务来监视配置目录并将更改提交到 git。

它不是 TFS,但源代码在 GitHub 上,因此您可以轻松地调整解决方案以满足您的需求。

该项目在 GitHub 上:https ://github.com/grenade/teamcity-config-monitor

于 2014-01-23T09:30:59.823 回答