TeamCity似乎在内部将构建,项目,模板等的定义存储为XML。
这在“管理>审核”视图中公开,您可以在其中查看人们对各个配置所做的差异,例如http://teamcityserver/admin/settingsDiffView.html?id=project:project10&versionBefore=8&versionAfter=9&actionId=3151
我想部分地从网络界面外部管理TeamCity设置 - 例如例如,将构建定义保留在版本控制中,并可能以编程方式生成它们。
有什么方法可以直接上传这种格式的定义(或任何类似的替代方案)?我知道TeamCity有各种API和扩展点,但没有设法找到任何可以直接访问此类内容的API。
如果有必要,我可以使用TeamCity版本更改的格式 - 支付其他好处是合理的价格。
答案 0 :(得分:3)
正如Ganesh在对此答案的评论中所报告的那样,9.x中添加了一个选项,通过源代码管理(SCM)工具支持更改和版本控制。有关9.x及更高版本,请参阅his answer。
它可能不是“已批准”的方式,但您可以在磁盘上编辑项目文件,这些更改将显示在您的构建配置中。 我在创建它们之后已成功在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将添加对Perforce和Subversion的支持。
我已经使用它与git几个月了,它在实践中非常好用。
我有时很难说服TeamCity注意到来自VCS的更改 - 特别是在删除项目时 - 但是它对于标准化配置和快速启动新的工作链非常有用。
另一个轻微的烦恼是您无法在存储库中配置设置来自的位置 - 它始终在根目录中.teamcity
- 因此我必须使用多个分支或存储库来管理多个TeamCity服务器