私たちは、5〜10人の開発者からなるチームであるソフトウェアプロジェクトに取り組んでいます。コードベースはBambooを使用して継続的に統合されます。ユニットテストと統合テスト、そして機能テスト計画も実行するビルドプランがあります。失敗に関するメールは自動的に届きますが、失敗したプランが修正されるまでに数日かかる場合があります。
質問:プロセス/ツールを改善して、人々が障害をより早く修正できるようにするにはどうすればよいですか?どのようなツール/プロセスがありますか?
編集:機能ブランチで作業していますが、Bambooジョブはメインブランチでのみ実行されます。竹が緑色になるまでプッシュを無効にできるGitフックが所定の位置にあります。これを自動化することは解決策になる可能性がありますが、Opsの部分にはいくつかのセキュリティ制約があり、それができない場合があります。
編集:単体テストと統合テストを使用したビルドには20分かかり、機能テスト計画は1日2回スケジュールされ、約2時間続きます
失敗したビルドの通知はすでにあるので、それらを修正することは主に人の問題です。
壊れたビルドは深刻な問題であり、何よりも先に修正する必要があることについて、チームメンバー間で合意を得る必要があります。
ビルドが壊れたままである限り、あなたはそれに同意する必要があります
ビルドが頻繁に中断する場合は、それが発生する理由と実行できる対策を調査する必要があります。
ここでの1つの可能性は、メインブランチにマージされる前に、機能ブランチがBamboo上に構築されるプロセスを配置できるかどうかを確認することです。またはさらに良いことに、マージの予測結果を作成する必要があります。ブランチ/マージのこのビルドが緑色の場合にのみ、実際のマージを実行する必要があります。
問題が検出されるのが早ければ早いほど修正が容易になるため、ビルドプロセスに変更することがいくつかあります。
最後のビットは、壊れたコードがマージされるのを防ぐだけでなく、マージされる前に開発者にブレークを処理するように強制するのに非常に便利です。前進する方法は、開発者がメインブランチからプルし、ステップから外れているパーツを修正してから、新しいプルリクエストを作成することです。
これを初めて自動化したのは、GithubとAppveyor CIでした。実際にマージされる前に、マージによってテストが中断されるかどうかを知っておくと便利です。
それでも頻繁なビルドブレークで問題が発生する場合は、以下を確認できます。