私のチームにおける私の役割の1つはビルドパーソンです。私は、ビルドスクリプトを維持/更新し、継続的インテグレーションサーバー上で「スムーズに」ビルドすることを確認する責任があります。私は通常、この仕事を気にしませんが、CIサーバーを常にベビーシッターしているように感じることがよくあります。
ビルドが中断した場合、作業中のストーリーを削除し、ビルドの失敗を調査する必要があるため、このジョブは時々面倒な場合があります。ビルドの失敗はチームで毎日発生します。開発者は、コミットする前にローカルでビルドしない場合があるため、CIサーバーでのテストは失敗します。この状況では、ビルドがあまりにも長く壊れないように、「悪いコミット」をした人にすぐに連絡を取りたいです。CIサーバーに、デバッグする必要のある奇妙な状態が時々(はるかに少ない頻度で)存在します。
多くの成熟したチームが継続的インテグレーションを使用していることは知っていますが、優れたプラクティスに関する資料はあまりありません。
私の問題は、継続的インテグレーションがあまり成熟していない、またはこれが単なる仕事の一部であると指摘していますか?
従うべきいくつかの良い習慣は何ですか?成熟した継続的インテグレーションの特徴は何ですか?
更新
いくつかのコメントに答える代わりに、代わりに更新を行います。アプリをビルドするときにビルドサーバーが実行することを正確に実行する単一のシンプルなコマンドがあります。コンパイル、すべてのユニット/統合、およびいくつかのクイックUIベースのテストを実行します。
みんなの答えを読んで、2つの大きな問題があるかもしれないと感じています。
- ビルドが失敗したときにCIサーバーが十分に不平を言っていない。
- 開発者は、コミットが正常に実行されることを確認する責任を全員に負わないと感じています。
私のチームで物事を難しくしているのは、大規模なチーム(10人以上の開発者)がいて、仕事をしていないときでも、数人のオフショアチームメンバーがコミットしていることです。チームが大規模であり、頻繁な小さなコミットが好ましいことを確立したため、1日で実際に多くのアクティビティを行うことがあります。