C ++プロジェクトに最適な継続的統合ツールは何ですか? [閉まっている]
-
02-07-2019 - |
質問
CruisecontrolとHudsonは、2つの一般的な継続的統合システムです。両方のシステムは自動連続ビルドをうまく実行できますが、バッチまたはbashビルドスクリプトを作成し、Windowsスケジューラまたはcronを使用してビルドをスケジュールする方がはるかに簡単に思えます。
C ++プロジェクトで利用できる継続的な統合システムが改善されていますか?または、スクリプトとスケジューラを使用する方が簡単ですか?
解決
C ++プロジェクトのCIに CruiseControl を使用しています。 antを使用するのはこれだけですが、CruiseControlのantビルドスクリプトは通常のビルドスクリプトを開始するだけなので、非常に簡単で、長い間更新する必要はありません。したがって、CrusieControlがJavaベースであるという事実は、私たちにとって本当に問題ではありませんでした。
クルーズコントロールのようなものを使用する主な利点は次のとおりです
- ビルドステータスを示す素敵なWebページ
- 各ビルド後またはビルドの失敗後に電子メールを送信
- ソース管理システムへのコミット後に自動的にビルド
- ビルドステータスを監視するfirefoxプラグイン
- ビルドエラーの出力を表示します。
- 前回のビルド以降に変更されたファイルを表示します(どの開発者がbuidを壊したかを確認するのに役立ちます)
もちろん、このすべてを実行するスクリプトを自分で作成できますが、なぜすべてが機能するのでしょうか?長期的には、CruiseControl(または同様のもの)をセットアップするための追加の初期コストは、おそらくカスタムCIビルドスクリプトを維持および更新するコストよりもはるかに少ないでしょう。
必要なのがデイリービルドを起動することであり、cronで開始された単純なスクリプトで十分であれば、すべての方法で実行できます。ただし、CIの利点の1つは、チェックインするたびにビルドステータスレポートを取得できることです。そのためのスクリプトを作成すると、より多くの作業が必要になり、CruiseControlはすでに実行しています。
他のヒント
Dartダッシュボードを使用しています。オープンソースですが、 KitWare によって推進されています。それ以来、彼らは名前を CDash に変更しましたが、これはまだ可能だと思います。私たちは、デバッグモードとリリースモードの両方で10の異なるプラットフォームで夜間および継続的な統合を含むいくつかの種類のテストを行っています。また、数千のアプリケーションテストを実行し、そこで結果を報告しています。
JetBrainsのTeamCity を試すこともできます。商用製品ですが、最大20ビルド構成の無料ライセンスを提供します。
継続的インテグレーション(CI)ツールの優れた機能の1つは、ソース管理リポジトリに何かがチェックインされるたびにビルドがトリガーされることです。
それが必要なものではない場合は、おそらくWindowsタスクスケジューラまたはcronジョブを使用した方が良いでしょう。
さらに、CIツールには(Web)ダッシュボードと高度なログ機能も備わっています。
あなたの質問はもっと「どうしてCIツールを使うのですか」と私には思えます。次に、「どのCIツールを使用すべきか」を指定します。バッチスクリプトがニーズを満たしている場合は、それを使用してください。ビルド環境の(再)作成は、追加のコンポーネントとしてCIツールを必要としない場合にのみ簡単になります。ソース管理トリガービルド、ダッシュボード、古いビルド結果の保存、またはその他のログが必要な場合は、CIツールを使用し、そのようなすべての機能をバッチまたはシェルスクリプトで開発しないでください。