通过REST调用启动TeamCity构建

通过REST调用启动TeamCity构建,teamcity,Teamcity,有点背景 在我的环境中,我们有大量的小型.NET解决方案,每个解决方案都有自己的Subversion存储库(500+)。我们不是TFS商店,目前正在评估将我们自己开发的CI流程转移到TeamCity 我不想让这些500多个repo每隔5-10分钟左右轮询我们的Subversion服务器,而是想通过post-commit hook-REST-http调用启动一个项目构建(就像我们当前的解决方案那样)。然后我希望TeamCity从SVN更新并开始构建过程。这可能吗 我看到TeamCity有一个RES

有点背景

在我的环境中,我们有大量的小型.NET解决方案,每个解决方案都有自己的Subversion存储库(500+)。我们不是TFS商店,目前正在评估将我们自己开发的CI流程转移到TeamCity

我不想让这些500多个repo每隔5-10分钟左右轮询我们的Subversion服务器,而是想通过post-commit hook-REST-http调用启动一个项目构建(就像我们当前的解决方案那样)。然后我希望TeamCity从SVN更新并开始构建过程。这可能吗

我看到TeamCity有一个RESTAPI,只是文档很少。我不确定这个例子与我配置的任何东西有什么联系。什么是bt7?它如何与我配置的项目相关联

http://buildserver:8111/httpAuth/action.html?add2Queue=bt7 

bt7是生成类型标识符。每个构建配置都有一个。您可以使用RESTAPI获得完整列表,如下所示

http://buildserver:8111/httpAuth/app/rest/buildTypes

如果单击TeamCity页面上的任何构建配置,也可以在url中看到构建类型。您将看到一个url参数,例如buildTypeId=bt7

bt7是您的
buildTypeId
,它是每个构建配置(作业)的唯一ID。每个项目可以有许多构建配置

如果你点击一个项目,然后点击一个特定的构建配置,你的URL会像


如果您想将构建配置排队运行,只需通过查看URL找到它的
buildTypeId
,然后您可能可以通过点击您使用的URL来尝试运行它。

如果您与我的处境相同,这可能有助于您编写对TeamCity的REST调用,尤其是在触发构建和监视构建时

  • 这里是一个示例JS客户机,我在过去使用过它来触发 建立。您需要从您的TeamCity帐户中获得
    承载令牌
    
  • 这是一个相当标准的令牌,您可以像生成Git一样生成它
  • 这将有助于您使用不同的帖子正文选项(不过可以将xml转换为json)
const TC_客户端={
异步后构建(){
常量请求={
构建类型:{
id:“您的构建类型id”
},
特性:{
财产:[{
名称:“balh”,
价值观:“胡说八道”
},
{
名称:“balh”,
价值观:“胡说八道”
}
]
}
};
const response=等待获取(“http://yourtcserver/app/rest/buildQueue", {
方法:“张贴”,
标题:{
“内容类型”:“应用程序/json”,
接受:“应用程序/json”,
授权:“持有您的\u TC\u代币”
},
正文:JSON.stringify(请求)
});
return wait response.json();
},
异步getBuildStatus(buildId){
const response=等待获取(
"http://yourtcserver/app/rest/buildQueue/“+buildId{
方法:“获取”,
标题:{
“内容类型”:“应用程序/json”,
接受:“应用程序/json”,
授权:“持有您的\u TC\u代币”
}
}
);
return wait response.json();
}
};
让sampleBuild=TC_CLIENT.postBuild();

console.log(“Status”,TC_CLIENT.getBuildStatus(sampleBuild.id))
现在我已经获得了构建类型id,我需要进行调用。传递凭据似乎不能正常工作。“”无法启动。我不确定您需要如何设置HttpAuth才能正确使用这样的URL。也许可以尝试使用HTTPS?如果这不起作用,也许可以开始另一个问题,或者做一些谷歌搜索…谢谢你的帮助。我已经让它工作了。我以为我发表了另一条关于这个事实的评论,但我一定没有正确地提交。我还验证了在启动新构建时,它会轮询SVN以获取最新的更改。一切都很好。TeamCity 8.1将提供通过RESTAPI排队构建的功能(根据)。