2012-09-28 18 views
11

TeamCity 7.1のインストールでは、GitHubリポジトリからすべてのブランチをビルドしています。TeamCityビルドGit/GitHubプルリクエスト

GitHubには、チェックイン時にビルドを開始するためのTeamCityへの通知フックがあります。 TeamCityは、変更をチェックするために120秒ごとにGitHubをポーリングします(変更がチェックインされたときにサーバーがオフラインになった場合)。

私たちの正常な発展は、一般的なパターンは以下:終了したら、すべての変更やプッシュをマージするマスターから引き機能

  • を終了するまで、そのブランチにコミットマスター
  • からブランチを作成

    1. をリモート
    2. に管理者がマスターにマージできるようにGitHubのプルリクエストを送信

    しかし、すべてが(適切な設定を取得するために多くの検索を行った後に)すごくうまくいっています...

    上記のプロセスはTeamCity上でいくつかのビルドをトリガし、それらがすべて必要かどうかを知りたいと思います。通常、我々はなってしまいます:レフリーは/プル/レフリー/ヘッド/ 支店名

  • /のビルドをため

    • ビルド/ /ヘッド
    • のビルド/レフリー/ /マージ

    は当然最初のビルドが最後のチェックインの特定のブランチ上で、第二のビルドがプル要求が、ワットです/プル帽子は3番目のビルドですか?

  • +0

    通常、これは問題ではありませんが、統合テストでRoRテストスイート全体を実行するには約10分かかります。したがって、プル要求のビルドステータスフィードバックは最大30分間は得られません。 – asafb

    答えて

    3

    あなたのビルドは冗長なようです。次のようにチームシティーはgitのに機能-支店のビルド整理するために、より倹約な方法は次のとおりです。

    1. はあなたのrefs/heads/master支店の継続的な統合を整理します。 120秒間の投票はここでかなり合理的です。
    2. refs/heads/feature-nameブランチの夜間ビルドを整理します。私の経験では、機能ブランチのほんのわずかに120秒のポーリングが必要です。

    チームシティー7.1は、自動トリガ機能ブランチに非常に便利な機能を持っているので、工程(2)refs/heads/feature-*のような分岐マスクを数回クリックするだけで設定することができます。

    プルリクエストのビルドには、マスタービルドの対象となるため意味がありません。

    +1

    プルリクエストの作成に関して、新しいGitHubビルドステータスAPIを使用すると、GitHubにプルリクエストのビルドステータスを直接表示することができます。これは、/ pulls/1/headブランチをビルドするときに表示されます。 – asafb

    +1

    私たちが変更した主な設定の1つは、上記のブランチスペック(わずかに変更されたもの)でした。**ほとんどの頭痛の原因となった各チェックイン**オプションでトリガービルドを削除しました。 – asafb

    13

    3番目のビルドは実際には最も価値があります。プルリクエストの自動マージ(githubでボタンを押したときに起こるマージ)の結果です。

    +0

    マスターからプル要求ブランチへのマージは冗長です。 –

    関連する問題