私は.NETの人間ですから、Windowsの世界ではうまく動作します...私は日常的にビルドプロセスを管理するテクノロジはあなたの世界から来ました! (Linux/javaテクノロジはカッコで囲まれていますが、Windowsの読者にも同等の機能が提供されています)私はすべてのビルドニーズに対応するためにCruiseControl.NET(CruiseControl)、VisualSVN(SVN)、Tortoise、NAnt
私のビルドはすべて、通常、チェックイン時に自動的にプッシュされ、タグ付けされます。これは、ソースコントロール(SVNまたはサブバージョン)を監視するCruiseControlで行われます。 CruiseControl(CC)は、新しいコードがチェックインされたことを確認すると、ビルドサーバー上のAntスクリプトを呼び出すCCプロジェクトを実行します。
Antスクリプトは、私にとって共通のビルドでいくつかのことを行います。最新のコードのコピーをチェックアウトし、ビルドサーバーに持ってきます。次に、少なくともコンパイルを行うためのコードを作成します。次に、データベースのクリーンコピーを設定し、SQLスクリプトを実行して、そのベースラインdbを現在のバージョンまでビルドします。私はすべての単体テストプロジェクトを実行します。次に、統合テストを実行します。これは、リポジトリレイヤをテストして、コードが私のバックエンドと揃っていることを確認します(私は通常、自分のプロジェクトでORMを使用しているため、同期が崩れることはほとんどありません...)過程の中で)。すべてのテストが合格(または失敗)したら、データベースをクリーンな状態にロールバックし、スクリプトを実行して現在のバージョンに戻します(クリーンなデータベースをクリックするとチームに提供されるので重要です)ボタンの)。ビルドが成功した場合は、コードを開発サーバーに展開します(ステージングサーバーと運用サーバーへのワンクリック展開もあります)。それぞれのチェックでコードベースにタグを付けるのが好きなら、ここでもそれを行うことができます。
これが完了したら、NDepend、NDoc、およびNCoverを使用してコードを分析したいと思います。 NDependは、物事が構造的に正しいこと、名前付け基準がそうであるようにすること、そしてそれ以上のものを確実にするためのコード分析ツールです。 NDocはすべてのコードコメントを抽出し、自分のコードのMSDNスタイルのドキュメントを作成します。 NCoverは私のコードの単体テストを適切にカバーしているかどうかを教えてくれます。
私は、さまざまなTODOおよび// CodeDebtタグのすべてのコードを解析して、別のレポート(通常はスプリントの終わりに)を生成するためのタグを解析するカスタムAntタスクを作成します。私のコードベースにはたくさんの駄目が蓄積されています。これを次のスプリントに組み込むことができます。
これらのレポートはすべて、外出するビルドメールに含まれているか、あまりにも適切にリンクされています。
上記のすべてがチェックインするたびに発生し、ボタンを1つでもクリックする必要がないことに注意してください。これは真の継続的な統合であり、すべてのビルドマスタの目標でなければなりません。
CruiseControlにはWebベースのコンソールがあり、非Web開発者(誰でも)が入り込み、コードをチェックすることなくこのプッシュを実行することができます。
このフレームワークを使用すると、すべてがバージョン管理されている限り、プッシュを簡単にロールバックすることができます。同じプロセスを実行する別のAntスクリプトが必要ですが、ビルドプロセスを実行するのに最新のコードではなく最後のバージョンのコードを取得する必要があります。 Antタスクはすべて、別の実行ターゲットで再利用できます。
私はCapistranoとCruiseControlを含む以下の提案をいくつか試してみました。そしてSpringLoopsをチェックアウトしました(本当にクールな解決策ですが、私たちにとってはうまくいかないでしょう)。 PHP Phingは完全にマッチしてしまった。カスタマイズやセットアップが簡単ではありません。 – prime31