2013-08-10 13 views
5

私のチームはTeamCityを使用してGitHubからプルリクエストを自動的に構築しています。TeamCityが閲覧またはコメントされたときにプルリクエストを作成することを停止するにはどうすればよいですか?

すべてのプルリクエストを作成するための設定があります。

+:root=Pull Requests on our Repository:\***/*\* 

「要求を引きます。configのバージョン管理の設定では、私たちのブランチ仕様は、私たちは、次のトリガルールを持つ唯一のトリガーを持っている、「トリガーを構築する」構成設定で

+:refs/pull/*/merge 

です私たちのリポジトリ上で "はVCSのルート名です。

問題:他の誰かが何もせずにGitHubのウェブサイト上のプルリクエストを表示すると

  • は、ビルドはチームシティーのビルドエージェントにトリガーされます。これは時々、複数のビルド・エージェントが同じプル・リクエストを構築している(複数の人がそれを表示している)ため、時には非常に厄介です。
  • プルリクエストに誰かがコメントすると、ビルドもトリガされます。

TeamCityがビルドを開始するのは、新しいコミットがプルリクエストにプッシュされるときだけです。

これを行う方法はありますか?

+0

これはGitlabで行うことができますか? –

答えて

1

チームシティはblog postとして設定していますか? GitHubのTeamCity service hookを有効にして、プッシュがあるたびにTeamCityのビルドをトリガーします。これは私のために正しいことをしているようだ。または私は何かを逃していますか?

7

Githubのrefs/pull/*/mergeブランチのマージ可能性が再計算されるたびに、つまり、宛先へのすべてのコミット(ほとんどの場合、master)ブランチに対して、ブランチが更新されます。また、プル要求が閉じられた後に再度開かれたときに更新されます。 Githubのサポートによれば、これらのブランチはエンドユーザ向けではありません。現時点で唯一の回避策は、refs/pull/*/headブランチでビルドを自動的に実行し、refs/pull/*/mergeブランチを手動で実行することです。

0

そのTeamCity's issue trackerによると、V9.0で修正されたビルドの無限ループを引き起こしTeamCity.GitHubプラグインの問題

2

私は、これは古いです知っているが、私たちは代替案として、見つけたものを投稿したかったです:

  • プルリクエストをトリガするメカニズムとして、VCSルートをすべて使用しないようにします。代わりにGitHub webhookを設定して、PRへの更新がある場合はtrigger a build via the TeamCity REST APIの場合に限り、Webアプリケーションにあなたに通知するように設定します。

  • ビルドの設定で、PRの変更内容を確認するステップを追加します。変更されていない(つまり、新しいコミットが追加されていない)場合、またはPRが閉じられている場合は、ビルドをキャンセルします。この問題は、ビルドキューにビルドが残っていて、ビルドがキャンセルされるということです。また、チェックを行うためにビルドされた最後のコミットをどこかに格納する必要があります。

関連する問題