我可以将TeamCity定义上传为XML吗?

时间:2013-09-25 10:45:52

标签: teamcity

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

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

等网址

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

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

如果有必要,我可以使用TeamCity版本更改的格式 - 支付其他好处是合理的价格。

2 个答案:

答案 0 :(得分:3)

适用于TeamCity 9.x及更新版

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

适用于TeamCity 8.x及更早版本

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

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

您可以在$TeamCityData/config/projects/找到它,然后将它们存储在$projectName/buildTypes/$buildFile.xml

等子文件夹中

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

答案 1 :(得分:2)

TeamCity 9添加了一个新的"Versioned Settings"功能,可以将这些XML文件保留在版本控制之下,并允许通过VCS进行更改。

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

我已经使用它与git几个月了,它在实践中非常好用。

我有时很难说服TeamCity注意到来自VCS的更改 - 特别是在删除项目时 - 但是它对于标准化配置和快速启动新的工作链非常有用。

另一个轻微的烦恼是您无法在存储库中配置设置来自的位置 - 它始终在根目录中.teamcity - 因此我必须使用多个分支或存储库来管理多个TeamCity服务器