5

TeamCity 似乎在内部将构建、项目、模板等的定义存储为 XML。

这显示在“管理 > 审核”视图中,您可以在其中查看人们对各个配置所做的差异,网址如下http://teamcityserver/admin/settingsDiffView.html?id=project:project10&versionBefore=8&versionAfter=9&actionId=3151

我想部分地从 Web 界面外部管理 TeamCity 设置 - 例如,将构建定义保留在版本控制中,并可能以编程方式生成它们。

有什么方法可以直接上传这种格式的定义(或任何类似的替代方法)?我知道 TeamCity 有各种 API 和扩展点,但还没有找到任何可以直接访问此类内容的 API。

如有必要,我可以接受 TeamCity 版本的格式更改 - 为其他好处付出的代价是合理的。

4

2 回答 2

3

对于 TeamCity 9.x 及更高版本

正如 Ganesh 在对此答案的评论中所报告的那样,在 9.x 中添加了一个选项,该选项支持通过源代码管理 (SCM) 工具进行更改和版本控制。请参阅他对 9.x 及更高版本的回答

对于 TeamCity 8.x 及更早版本

它可能不是“批准”的方式,但您可以编辑磁盘上的项目文件,这些更改将出现在您的构建配置中。创建它们后,我已在 Web UI 之外成功地对其进行了编辑。

因此,您可以将该文件夹作为受限网络共享打开或设置 ssh。

您会在 找到它,$TeamCityData/config/projects/然后将它们存储在子文件夹中,例如$projectName/buildTypes/$buildFile.xml

一个例子是: E:\TeamCityData\config\projects\CSandbox\buildTypes\CSandbox_Project1TrunkBuildUnitTest.xml

于 2013-09-25T23:46:29.800 回答
2

TeamCity 9 添加了一个新的“版本化设置”功能,该功能使这些 XML 文件处于版本控制之下,并允许通过 VCS 进行更改。

在 TeamCity 9.0 中,这可以是 git 或 mercurial,即将推出的 TeamCity 9.1 将添加对PerforceSubversion的支持。

我已经将它与 git 一起使用了几个月,并且在实践中效果很好。

我有时很难说服 TeamCity 注意到来自 VCS 的变化——尤其是在删除项目时——但除此之外,它对于标准化配置和快速启动新的工作链非常有用。

另一个轻微的烦恼是,您无法在存储库中配置设置所在的位置 - 它始终.teamcity位于根目录中 - 所以我不得不使用多个分支或存储库来管理多个 TeamCity 服务器。

于 2015-04-07T07:37:31.080 回答