Stash2.1には新しいRESTAPIが付属しており、特定のチェンジセットに関連するビルドについてStashに通知できます。TeamCityでのビルドについてStashに通知するにはどうすればよいですか?
6043 次
3 に答える
13
ビルド ステータスとともに REST API に投稿するこのTeamCity プラグインを使用できます。
注:私は開発者です
編集: Jetbrains にも同じことを行うプラグインがあります。こちらを参照してください:
http://confluence.jetbrains.com/display/TW/Commit+Status+Publisher
于 2013-03-04T23:34:06.263 に答える
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%
これにより、特定のチェンジセットのビルドが開始されたことが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
これにより、特定のチェンジセットのビルドが成功または失敗したことがStashに通知されます。
于 2013-02-12T09:05:58.340 に答える