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

我可以将TeamCity定义上传为XML吗?,teamcity,Teamcity,TeamCity似乎在内部将构建、项目、模板等的定义存储为XML 这在“Administration>Audit”视图中公开,您可以在URL(如http://teamcityserver/admin/settingsDiffView.html?id=project:project10&versionBefore=8&versionAfter=9&actionId=3151 我希望部分地从web界面外部管理TeamCity设置-例如,将构建定义保留在版本控制中,并可能以编程方式生成它们 是否有任何

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

这在“Administration>Audit”视图中公开,您可以在URL(如
http://teamcityserver/admin/settingsDiffView.html?id=project:project10&versionBefore=8&versionAfter=9&actionId=3151

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

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

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

对于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\u Project1TrunkBuildUnitTest.xml

TeamCity 9添加了一项新功能,可将这些xml文件置于版本控制之下,并允许通过VCS进行更改

在TeamCity 9.0中,这可以是git或mercurial,即将发布的TeamCity 9.1将添加对和的支持

我已经在git中使用它几个月了,它在实践中运行得非常好

我有时很难说服TeamCity注意到风险投资带来的变化——特别是在删除项目时——但除此之外,这对于标准化配置和快速构建新的工作链非常有用


另一个小小的麻烦是,您无法在存储库中配置设置来自的位置-它总是根目录中的
.teamcity
-因此我不得不使用多个分支或存储库来管理多个teamcity服务器。

这非常有用,谢谢。我试过了,它似乎也对我有用。一个困难是,工作的审计视图没有意识到变化。这并不奇怪,因为没有关于TeamCity变更的主动通知。我担心像这样躲在TeamCity后面可能会导致其他更重要的事情错过更改。我一直在使用它来覆盖UI未公开的内容。我的发现是,当我(或提交)触发构建时,它会拾取XML中的更改并正常运行。但是,如果我进入有这些选项的屏幕,并且没有点击取消,它将覆盖我的更改。这就是为什么这可能不是被认可的方式。我建议您在根目录下设置一个沙盒项目,然后将构建脚本复制到那里并进行测试。如果您直接修改该文件,您很可能需要重新启动TeamCity,以便在您通过Web UI编辑更改时不会覆盖您的更改。对于TeamCity 8.x及之前的版本,此答案仍然适用,但是,随着TeamCity 9推出了一种更好的方法,我正在改变公认的答案。再次感谢你的回答。没问题,谢谢你提到这一点。我将编辑这篇文章,说是针对TC 8.x,之前有一个开放的TC功能请求,内容如下: