如何将JetBrains TeamCity与Atlassian Stash集成

6 teamcity bitbucket-server

Stash 2.1附带了一个新的REST API,允许您告诉Stash有关特定变更集的构建.如何让Stash了解我在TeamCity中的构建?

Men*_*hak 13

您可以使用此TeamCity插件,该插件使用构建状态发布到REST API.

注意:我是开发人员

编辑:Jetbrains也有一个插件可以做同样的事情,请看这里:

http://confluence.jetbrains.com/display/TW/Commit+Status+Publisher


Cai*_*ete 8

JetBrains现在有一个名为" Commit Status Publisher " 的官方插件,可以将构建状态发送给Atlassian Stash或Gerrit Code Review工具.

源代码在GitHub上.

注意:安装插件后,向TeamCity构建添加一个名为"Commit status publisher"的构建功能.

  • 对于安装此插件的任何其他人,然后花费45分钟谷歌搜索如何使用它,您必须添加一个构建功能,称为"提交状态发布者" (7认同)

小智 7

在构建配置中,插入此Powershell脚本作为第一个构建步骤:

curl -v -H "Content-Type: application/json" -X POST -d '{ \"state\": \"INPROGRESS\", \"key\": \"%teamcity.build.id%\", \"name\": \"#%build.number%: %system.teamcity.buildConfName%; %system.teamcity.projectName%\", \"url\": \"http://TEAMCITY-HOSTNAME/viewLog.html?buildId=%teamcity.build.id%\", \"description\": \"Revision: %build.vcs.number%; Triggered by: %build.triggeredBy%\" }' http://USERNAME:PASSWORD@STASH-HOSTNAME/rest/build-status/1.0/commits/%build.vcs.number%
Run Code Online (Sandbox Code Playgroud)

这将让Stash知道某个变更集的构建已经开始.

作为上一个构建步骤,插入此Powershell脚本并选择执行它的选项,即使您的构建失败:

$xml = [xml](curl --request GET http://USERNAME:PASSWORD@TEAMCITY-HOSTNAME/httpAuth/app/rest/builds/%teamcity.build.id%)
Microsoft.PowerShell.Utility\Select-Xml $xml -XPath "/build" | %% { $status = $_.Node.status }
switch ($status) {
 "SUCCESS" { $stashStatus = "SUCCESSFUL"; }
 default { $stashStatus = "FAILED"; }
}
$do = @'
curl -v -H "Content-Type: application/json" -X POST -d '{ \"state\": \"$stashStatus\", \"key\": \"%teamcity.build.id%\", \"name\": \"#%build.number%: %system.teamcity.buildConfName%; %system.teamcity.projectName%\", \"url\": \"http://TEAMCITY-HOSTNAME/viewLog.html?buildId=%teamcity.build.id%\", \"description\": \"Revision: %build.vcs.number%; Triggered by: %build.triggeredBy%\" }' http://USERNAME:PASSWORD@STASH-HOSTNAME/rest/build-status/1.0/commits/%build.vcs.number%
'@
$do = $do -Replace '\$stashStatus', "$stashStatus"
Invoke-Expression $do
Run Code Online (Sandbox Code Playgroud)

这将让Stash知道某个变更集的构建成功或失败.