2017-03-07 8 views
1

Jenkins、Teamcityなどを使用してgithubでプルリクエストをすべて作成していると仮定し、すべてのPRは、最新の支店で構築する必要があります。人々がこれを達成する方法を知りたいですか?複数のgithubプルリクエストを同時にビルドしますが、すべてのPRを最新のブランチにマージします

PRs Start Time Jenkins Build  Build Finished 

PR1 (10:00) ---> Building(30 mins) -->10:30 ----> Merged in Develop 
PR2 (10:05) ---> Building(30 mins) -->10:35 ----> Merged in Develop 
PR3 (10:10) ---> Building(30 mins) -->10:40 ----> Merged in Develop 

私は、このアプローチに問題があります。 PR1が開発ブランチで統合された後(10:30)、PR2とPR3はもはや最新のブランチ上にビルドされていませんでした。ブランチの開発中です(PR1が統合される前)。

Githubには、マージ前に保護されたブランチが最新であることを確認するオプションがあります。 msgstr "マージ前にブランチを最新にする" msgid。このオプションを選択した場合、PR2とPR3を統合することはできません。また、PR用に「更新ブランチ」ボタンが有効になり、PRが開発ブランチからリベースされるようになります。

PR2とP3は開発ブランチでリベースされますが、最新のコードでは検証されませんので、再度ビルドします。すべてのPRを構築するのに時間がかかります。その2〜3回のビルドのような。

あなたはどのようにあなたの組織でこれを達成していますか?

答えて

0

事実:

  • あなたが検証する必要がある場合は、検証プロセスは30分、
  • を取る場合:検証PR1
  • の上だけでは
  • PR2
    1. PR1PR3トップへfはその後、

PR1 + PR2を検証:

    :あなたは3つのPR

を統合する1h30の最小見ている

  • これを変更する方法
  • 最適化するURビルドジョブ
  • ユニットテストを実行してもスタティックアセットを作成する必要がないなど、タスクのサブセットのみを実行してPRを検証できる場合は、CIジョブを2つのジョブに分割します。ジョブと1つの "ビルド"ジョブ
  • パイプラインを変更する:たとえば、CIが自動的に新しいPRを検証するようにすることができますが、PRをマスターにマージし、結果に対してビルドジョブを手動でトリガーする手作業が必要です
+0

ありがとう@LeGEC。開発者の生産性を向上させるために、このプロセスの手作業を避けようとしています。現在、私たちの開発者はPRを提出し、彼らの仕事で完了したと仮定します。私たちのオートメーションは、すべてのビルド/バリデーションなどを行い、マスターでマージします。いずれにしても自動化に失敗すると、Devにフィードバックを送って見てください。 – Sridhar

関連する問題