現在、Linux で Make を使用してビルドする C++ プロジェクトがあります。CruiseControl の下の Java プロジェクトと同様に自動化したいと思います。
1) C++ プロジェクト用の CruiseControl に似たプロジェクトはありますか?
また
2) C++ プロジェクトで CruiseControl を使用するための適切な「ハウツー」はありますか?
現在、Linux で Make を使用してビルドする C++ プロジェクトがあります。CruiseControl の下の Java プロジェクトと同様に自動化したいと思います。
1) C++ プロジェクト用の CruiseControl に似たプロジェクトはありますか?
また
2) C++ プロジェクトで CruiseControl を使用するための適切な「ハウツー」はありますか?
Linux で C++ プロジェクト用に CruiseControl をセットアップすることを検討していましたが、Hudsonに出会いました。1 つのファイルと 1 つのコマンド ラインのセットアップがあり、すぐに実行できます。管理アクセスは、優れた Web インターフェイスを介して行われます。強くお勧めします。
Hudson は CC に比べてセットアップと管理が簡単なように見えます。さらに、プラグインを介してビルドの統計、エラー/警告にアクセスでき (ディレクトリにドロップすると利用可能になります)、ビルドが失敗したときに自動的に電子メールを送信するように設定できます。
各プロジェクト ディレクトリに対して make を呼び出すシェル スクリプトを作成しました。ハドソンにそのスクリプトを実行するように指示しました。ビルドは cron のような設定を介してセットアップされます - Web インターフェースを介してセットアップされます。コードの変更を 30 分ごとにチェックし、perforce からビルドを取得して再コンパイルしています。
よくわからない場合は、試してみてください。起動して実行するのに数分しかかかりません。現在のビルド セットアップで何が可能かを確認したかったのでダウンロードしましたが、過去を振り返ることはありませんでした。1 年近く問題なく実行されています。
TeamCityを使用しているため、CruiseControlはわかりませんが、CruiseControlはコマンドラインビルドを実行できるはずです。つまり、Makeを呼び出すだけです。それは何も悪いことではありません。TeamCityでは、進行状況の通知をmakeファイルに追加することも簡単です(特定の形式で出力するだけです)。そのため、「ネイティブ」プロジェクトとそれほど違和感はありません。CruiseControlがこの点でどこまで進んでいるかはわかりません。
CMakeで構築された大規模なC++プロジェクトがあり、コマンドラインで実行されており、単体テストの結果(Boost :: Testを使用)も正しく報告されます。
ああ、CruiseControlがJava以外のコマンドラインランナーまたはプロジェクトタイプをサポートしていない場合は、代わりにTeamCityを検討する必要があります。
Hudsonを実行して、C++ と Java コードの混合物をビルドしていますが、非常にうまく機能します。CruiseControl に対する利点の 1 つは、Hudson には完全な Web インターフェイスがあるため、XML ファイルを手動で編集する必要がないことです。