2017-07-13 5 views
0

公式のドキュメントでは、APIを使用して新しいビルドをトリガーし、TeamCityのコメントではなくプロパティを指定する方法を見つけました。アイデアは、マージ要求がバージョンでタグ付けされたときに、タグブランチ用のGitLabから新しいビルドをトリガーすることです(タグはコンフィギュレーションでブランチとして使用します)。 TeamCityでは、ブランチ仕様( - :refs/merge-requests/*)に除外ルールを追加しました。私たちは通常、他のブランチにもたくさんあるので、すべてのマージリクエストをビルドしたくありません。このルールは、最近作成してタグ付けしたマージ要求にも適用されます。その結果、私はタグ付きマージ要求のためのビルドを持っていません。TeamCityのAPIを使用して特定のブランチの新しいビルドをトリガーする方法

GitLabから新しいビルドをトリガーしたいのですが(新しいタグが検出されたときにwebhookを追加します)、使用するブランチを指定できるかどうかわかりません。

ありがとうございます。

答えて

1

Googleでしばらくの間、私はついに答えを見つけました。特定のブランチのビルドをトリガーするには、branchName="v1.26.1"(ブランチフィーアーとしてタグを使用したので、タグ名を指定しました)属性をXML要求の<build>タグに追加する必要があります。ここで

特定のタグ/ブランチのためにチームシティーで新しいビルドをトリガーする方法PowerShellの例です。

$Username = '!username!' 
$Password = '!password!' 
$BuildTypeId = '!build type id from teamcity!' 

$Pair = "$($Username):$($Password)" 
$EncodedCredentials = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($Pair)) 
$Headers = @{ 
    Authorization = "Basic $EncodedCredentials"; 
    Accept = "application/json" 
} 

$Body = '<build branchName="v1.26.1"><buildType id="#{buildTypeId}"/><comment><text>Build was triggered by GitLab.</text></comment><properties /></build>' -Replace "#{buildTypeId}", $BuildTypeId 
Invoke-WebRequest -Uri 'http://teamcity.host/httpAuth/app/rest/buildQueue' -Method POST -Body $Body -UseBasicParsing -Headers $Headers -ContentType "application/xml" 
関連する問題