Table of Contents |
---|
概要
Jenkins はプロジェクトのビルドやテスト、外部実行ジョブのモニタリングを行うために開発フローで広く使用されている継続的インテグレーション ツールの はプロジェクトを継続的にビルドおよびテストし、また外部実行ジョブのモニタリングを行うような開発フローで広く使用されている継続的インテグレーションツールの 1つです。さまざまなソースの管理、ビルド、テスト、解析、デプロイメント システムに対応した豊富なプラグインを利用できます。
IncrediBuild はビルド、テストなどの開発プロセスを分散ネットワーク上で同時に処理できるビルド アクセラレーション テクノロジーです。はビルド、テストなどの開発プロセスを分散ネットワーク上で同時に処理できる高速化のテクノロジーです。
IncrediBuild for Jenkins により Jenkins ノードを拡張して、ローカル ネットワークやパブリック クラウドのマシン間で計算プロセスをシームレスに分散できます。IncrediBuild はネットワーク上にあるアイドル状態の CPU サイクルを使用することで、Jenkins ノードを効果的にスーパー コンピュータ ノードに変換します。ローカル コアだけでなくすでに所有している数百ものコアを活用することでコンパイル、ユニットテスト、QA スクリプト、コード解析、パッケージング、アセットの作成など時間のかかる処理を大幅に高速化します。ネットワークやパブリッククラウドのマシン間でプロセスをシームレスに分散できます。IncrediBuild はネットワーク上にあるアイドル状態の CPUを使用することで、Jenkins ノードをスーパーコンピュータに変換します。ローカルコアだけでなくすでに所有している数百ものコアを活用することでコンパイル、ユニットテスト、QA スクリプト、コード解析、パッケージング、アセットの作成など、時間のかかる処理を大幅に高速化します。
IncrediBuild のメリットを最大限に活かすには、IncrediBuild をすべての Agentをすべての Jenkins ノードとアイドル状態の CPU サイクルを IncrediBuild 分散プラットフォームに提供できる他のすべてのマシンにインストールすることをお勧めします。 分散環境に提供できる他のすべてのマシンにインストールすることをお勧めします。
ビルドに参加する (アイドル状態のCPU サイクルを を IncrediBuild システムに提供する分散システムに提供する) リモートマシンには IncrediBuild Agent のみインストールが必要です。ソースコード、ツールチェーン、その他のファイルをコピーする必要はありません。のみインストールされていれば良く、ソースコード、ツールチェーン、その他のファイルをコピーしたり、設定したりする必要はありません。
処理に必要なデータはすべて IncrediBuild のプロセス仮想化メカニズムにより、必要に応じて特別なサンドボックスにコピーされます。のプロセス仮想化メカニズムにより、必要に応じてIncrediBuild 固有のサンドボックスにコピーされます。
IncrediBuild 分散プラットフォームの詳細については、IncrediBuild ユーザーマニュアルをご覧ください。
...
IncrediBuild for Jenkins プラグインは Jenkins 1.580.1 以降のバージョンで動作を確認済みです。それ以前のバージョンでも動作する場合があります。他のプラグインと依存関係はありません。以降のバージョンで動作確認済みですが、それ以前のバージョンでも動作する可能性があります。他のプラグインとの依存関係はありません。
Jenkins のビルドを高速化するにはご利用の環境に IncrediBuild システムをセットアップする必要があります。
...
Info |
---|
IncrediBuild for Jenkins プラグインの使用には IncrediBuild Enterprise Edition が必要です。IncrediBuildエンタープライズ版のライセンスが必要です。 |
インストール
IncrediBuild for Jenkins プラグインのインストール手順
- こちらからプラグインをダウンロードします。
- 次のディレクトリに hpi ファイルをコピーします。/JENKINS_HOME/plugins ディレクトリに hpi ファイルをコピーします。
- Jenkins を再起動します。サービスを再起動します。
Jenkins プラグインのインストールの詳細は Jenkins マニュアルの「How to install plugins」セクションをご覧ください。
プラグインの設定
IncrediBuild for Jenkins プラグインの設定は不要です。Jenkins では、プラグインの設定は不要です。
Jenkins スレーブ ノードの設定
IncrediBuild のビルドを実行するすべての のビルドステップを実行するすべての Jenkins ノードに IncrediBuild Agent が正しくインストール、設定されていることを確認します。また、Jenkins によるアクセスがあった際に PATH 変数が IncrediBuild バイナリー フォルダを含んでいることを確認します。 Agent が正しくインストール、設定されていることを確認します。また、Jenkins ジョブを実行するユーザーの環境変数 PATH に IncrediBuild インストールフォルダが含まれていることを確認します。
IncrediBuild ビルドステップ
ビルドステップの使用
...
Visual Studio でのコンパイルの高速化については、IncrediBuild オンライン マニュアルの「IncrediBuild for Visual Studio」をご覧ください。
必須項目
ソリューション構成またはプリセット ファイルを適用するターゲット ソリューションの設定が必須です。プラグインによって矛盾するオプションが選択されていないことが検証されます。ソリューションの設定が必須です。プラグインは矛盾するオプションが選択されていないことを検知します。
オプション項目
BuildConsole のオプション項目は次のセクションに分かれています。Target and Configuration、Distribution Control、Output and Logging、Miscellaneous、Advanced。
...
このビルドステップでは IncrediBuild の「BuildConsole \/Command」コマンドラインのラッパーを使用して、IncrediBuild がデフォルトでサポートしている Make、MSBuild、WAF、ninja、scons、CMake などのビルド システムに基づくプロジェクトのビルドを高速化します。ツールを使用するプロジェクトのビルドを高速化します。
対応しているビルドツールの一覧と IncrediBuild で Make やその他のビルドツールを高速化する方法の詳細については、IncrediBuild オンラインマニュアルの「IncrediBuild for Make and Other Build Tools」をご覧ください。
必須項目
実行コマンドの設定が必須です (例: make all)。
デフォルトで自動的に並列処理のスイッチが追加されます (Make では -j;、MSBuild では /m:)。コマンドラインの一部ですでに並列処理のスイッチが使われている場合は、より多くの処理を並列に実行 のスイッチが使われている場合は、より多くの処理を並列(および分散) するために大きな値に変更されます。実行するために大きな値に変更されます。
たとえば、MSBuild では既存の /mスイッチの値が / m64 に、Make では -J フラグが -j200 に変更されます。ビルドを実行する MSBuild コマンドが記載されたバッチファイル (/commnad = BathchfileBatchfile) で実行コマンドが指定されている場合は、IncrediBuild で /m 値の変更方法を判断できないため変更を行いません。この場合は手動で /m 値を大きな値へ置き換え、または追加する必要があります 値を大きな値への書き換え、または追加する必要があります (MSBuild では 40 以上、Make では 100 以上を推奨)。
オプション項目
オプション項目には次のセクションがあります。Distribution Control、Output and Logging、Miscellaneous。
...
このビルドステップでは IncrediBuild BuildConsoleIBConsole コマンドラインのラッパーを使用して、ユニットテスト、QA スクリプト、パッケージング、コード解析、アセットビルド、シミュレーションなど、さまざまなマルチプロセスのカスタム処理を高速化します。
Visual Studio でのコンパイルの高速化については、IncrediBuild IIncrediBuildを使用して、テスト、コード分析、アセット作成、その他のカスタム処理などのさまざまな開発の実行を高速化する方法の詳細については、IncrediBuild オンラインマニュアルの「IncrediBuild for DevTools」をご覧ください。
必須項目
実行コマンドの設定が必須です (例: MyUnitTests.bat)。
オプション項目
オプション項目には次のセクションがあります。Distribution control、Output and Logging、Miscellaneous。
...
Linux での Jeknins を使ったビルドを高速化する方法については support@IncrediBuildsupport1@IncrediBuild.com までお問い合わせください。
必須項目
ターゲット ソリューション ファイル ([Target Solution File]) の設定が必須です。
オプション項目
ib_console のオプション項目は次の画像をご覧ください。
...
項目 | 説明 | |
Target Solution File | ビルドするソリューション ファイル。 | |
Build Type | 実行するビルドのタイプ。 | |
Configuration | ビルドするソリューションの構成を決定します (例: Debug|Win32)。コンマで区切って複数の構成を指定できます (例: Debug Debug|Win32,Release|Win32) | |
Custom Configuration Preset | [Batch Build] ダイアログで保存されたプリセットをビルドするプロジェクト / 構成に適用します。プロジェクトと構成の組み合わせが複雑な場合に有効です。/Preset コマンドを使って、/cfg、/prj オプションの両方を置き換え可能です。 | |
Project | ビルドするプロジェクトを決定します。デフォルトではプロジェクトの依存関係もビルドされます。ビルドするプロジェクトを指定します。デフォルトではプロジェクトの依存関係もビルドされます。 | |
Do Not Build Dependencies for the Project | 指定したプロジェクトの構成のみビルドします。依存関係は無視されます。[/Clean] で使用した場合、指定した構成のみが消去されます。[/Rebuild] で使用した場合、指定した構成のみがリビルドされます。 | |
Build all Projects Regardless of Errors | 特定のプロジェクトでビルドに失敗してもソリューションのビルドを継続します。通常 IncrediBuild は 1 つのプロジェクトで出力ファイルを作成できなければビルドを停止します。このオプションを有効にすると、プロジェクトのビルドに失敗しても残りのプロジェクト構成を続けてビルドできます。 | |
UseEnv | MS Visual C++ IDE パスの代わりに、PATH、INCLUDE、LIBPATH、LIB 環境変数を使用します。 | |
Add Parameters to cl.exe | すべての cl.exe のすべてのコールにコンパイラ オプションを追加できます。の実行時に追加するコンパイラ オプションを指定します。cl.exe コマンドラインに表示するには、1 つまたは複数のコマンドをスペースで区切って入力します (例: /O2 /FA)。 | |
Remove Parameters from cl.exe | すべての cl.exe のすべてのコールから削除するコンパイラ の実行時に削除するコンパイラ オプションを指定します。cl.exe コマンドラインに表示するには、1 つまたは複数のコマンドをスペースで区切って入力します (例: /Z7 /Zd /Zi /ZI)。 | |
Force Visual Studio Version | 特定バージョンの Visual Studio ツールセットを強制的に使用します。Visual Studio ではアップグレード後に不適切なバージョンを使用してソリューションがビルドされることがあるため、アップグレードを行ったプロジェクトをビルドする場合に特に有効です。 | |
Use MSBuild Instead of Devenv | devenv の代わりに Msbuild をトップ ビルド マネージャーに設定します。 Devenv によるビルド (デフォルト) に問題が発生している場合や MsbuildArgs オプションを使用して msbuild に引数を渡す必要がある場合にのみ使用します。 | |
Arguments for Msbuild | BuildConsole コマンドで UseMsbuild スイッチを使用する際にオプションを使用する際に MSBuild に追加の引数を渡します。 | |
Profile.xml | Profile XML ファイルは Automatic Interception Interface で分散ジョブに関するさまざまなプロセスの処理方法を定義するのに使用します。Visual Studio や Make & Build Tools でビルドを行う場合は不要ですが、これらのパッケージに含まれていないプロセスを追加する場合に構成オプションを提供するのに使用できます。でビルドを行う場合は不要ですが、これらのパッケージに含まれていないプロセスを追加する場合にプロセスの処理方法を設定するファイルとして使用できます。Dev Tools のビルドでは、分散可能な処理を設定する必要があります。 | |
Avoid Task Execution on Local Machine When Possible | [Agent Settings] ダイアログをオーバーライドする際に使用します。イニシエーターマシン上でより多くのリソースをリリースできます。イニシエーターマシンの ダイアログでの設定をオーバーライドする際に使用します。イニシエーターマシン上でより多くのCPUリソースが使えるようになります。イニシエーターマシンの CPU 使用率がビルドのボトルネックになっているケースの分散に有効です。使用率がビルドのボトルネックになっているケースの分散ビルド時に有効です。 | |
Maximum CPUs to Utilize in the Build | ビルドで使用するリモート コアの上限数を指定します。ビルド設定で最大 CPU / コアのグローバル設定をオーバーライドします。 | |
Newest Allowed Helper Machine OS | ヘルパーとしてビルドに参加可能な最も新しい ヘルパーとしてビルドに参加可能な最上位の OS を指定します。バージョンを指定します。 | |
Oldest Allowed Helper Machine OS | ヘルパーとしてビルドに参加可能な最も古い OS ヘルパーとしてビルドに参加可能な最下位の OSバージョン を指定します。 | |
Build Title | ビルド出力テキストの先頭に表示するカスタム ヘッダー行を指定します。タイトルはヘッダーに表示される文字列を指定します。タイトルはビルド履歴やビルドモニターにも表示されます。 | |
Save IncrediBuild Monitor File | ビルドの進行状況 ビルドの進行状況を記録する (.ib_mon) ファイルのコピーを指定した場所に書き込みます。フォルダ名のみを指定した場合は GUID という名前でファイルが生成されます。.ib_mon ファイルの場所を含むメッセージがビルド出力の末尾に追加されます。 | |
Suppress STDOUT | 標準出力に書き込みを行いません。標準出力にビルド時出力を一切表示しません。 | |
Output Log File | ビルド出力をファイルに書き込みます。ビルド出力を指定したファイルに書き込みます。 | |
Show Commands in Output | IncrediBuild がビルドする際に使用したコマンドラインをビルドされた各ファイルに表示します。ビルド実行時に使用したコマンドラインを出力に表示します。 | |
Show Agents in Output | 各ファイルのビルドに使用された Agent を表示します。を出力に表示します。 | |
Show Time in Output | ビルドされた各ファイルの開始時刻と終了時刻を表示します。 | |
Hide IncrediBuild Header in Output | ビルド出力で IncrediBuild ヘッダーを非表示にします。 | |
Internal IncrediBuild Logging Level | IncrediBuild 内部のロギング レベルをオーバーライドします。出力やユーザーがアクセス可能なロギングへの影響はありません。IncrediBuild 内部のログ レベルをオーバーライドします。出力やユーザーがアクセス可能なログへの影響はありません。IncrediBuild サポートで問題のトラブルシューティングを行う際に使用します。 | |
Set an Environment Variable | ビルド コンテキストの環境変数を設定またはオーバーライドします。 | |
Stop On Errors | エラー発生時に直ちに処理を停止します。 この動作は Visual Studio ビルドではデフォルトですが、Make & Build Tools と Dev Tools のビルドではオプションです。 | |
Additional Arguments | BuildConsole の引数を手動で追加します。この値は BuildConsole コマンドラインに連結されます。Internal IncrediBuild Logging Level | IncrediBuild 内部のロギング レベルをオーバーライドします。出力やユーザーがアクセス可能なロギングへの影響はありません。IncrediBuild サポートで問題のトラブルシューティングを行う際に使用します。 |
Nice Value | Nice 値を指定します。値を指定します |