Jenkins 用の IncrediBuild プラグイン

概要

Jenkins はプロジェクトを継続的にビルドおよびテストし、また外部実行ジョブのモニタリングを行うような開発フローで広く使用されている継続的インテグレーションツールの 1つです。さまざまなソースの管理、ビルド、テスト、解析、デプロイメント システムに対応した豊富なプラグインを利用できます。

IncrediBuild はビルド、テストなどの開発プロセスを分散ネットワーク上で同時に処理できる高速化のテクノロジーです。

IncrediBuild for Jenkins により Jenkins ノードを拡張して、ローカル ネットワークやパブリッククラウドのマシン間でプロセスをシームレスに分散できます。IncrediBuild はネットワーク上にあるアイドル状態の CPUを使用することで、Jenkins ノードをスーパーコンピュータに変換します。ローカルコアだけでなくすでに所有している数百ものコアを活用することでコンパイル、ユニットテスト、QA スクリプト、コード解析、パッケージング、アセットの作成など、時間のかかる処理を大幅に高速化します。

IncrediBuild のメリットを最大限に活かすには、IncrediBuild Agentをすべての Jenkins ノードとアイドル状態の CPU サイクルを IncrediBuild 分散環境に提供できる他のすべてのマシンにインストールすることをお勧めします。 

ビルドに参加する (アイドル状態のCPU IncrediBuild 分散システムに提供する) リモートマシンには IncrediBuild Agent のみインストールされていれば良く、ソースコード、ツールチェーン、その他のファイルをコピーしたり、設定したりする必要はありません。

処理に必要なデータはすべて IncrediBuild のプロセス仮想化メカニズムにより、必要に応じてIncrediBuild 固有のサンドボックスにコピーされます。

IncrediBuild 分散プラットフォームの詳細については、IncrediBuild ユーザーマニュアルをご覧ください。


Jenkins の設定

システム要件

IncrediBuild for Jenkins プラグインは Jenkins 1.580.1 以降のバージョンで動作確認済みですが、それ以前のバージョンでも動作する可能性があります。他のプラグインとの依存関係はありません。

Jenkins のビルドを高速化するにはご利用の環境に IncrediBuild システムをセットアップする必要があります。


IncrediBuild for Jenkins プラグインの使用には IncrediBuildエンタープライズ版のライセンスが必要です。

インストール

IncrediBuild for Jenkins プラグインのインストール手順

  1. こちらからプラグインをダウンロードします。
  2. /JENKINS_HOME/plugins ディレクトリに hpi ファイルをコピーします。
  3. Jenkins サービスを再起動します。

Jenkins プラグインのインストールの詳細は Jenkins マニュアルの「How to install plugins」セクションをご覧ください。

プラグインの設定

IncrediBuild for Jenkins では、プラグインの設定は不要です。

Jenkins スレーブ ノードの設定

IncrediBuild のビルドステップを実行するすべての Jenkins ノードに Agent が正しくインストール、設定されていることを確認します。また、Jenkins ジョブを実行するユーザーの環境変数 PATH IncrediBuild インストールフォルダが含まれていることを確認します。

IncrediBuild ビルドステップ

ビルドステップの使用

IncrediBuild for Jenkins プラグインではシェルやバッチ スクリプトの代わりに、IncrediBuild の BuildConsole や IBConsole コマンドのラッパーが提供されます。 

IncrediBuild Jenkins plugin build steps

          IncrediBuild Jenkins プラグインのビルドステップ

ビルドステップを Jenkins ジョブに追加

IncrediBuild for Jenkins プラグインをインストールすると 4 つのビルドステップが追加されます (ドロップダウン メニューで選択)。

IncrediBuild ビルドステップの追加手順

  1. IncrediBuild コマンドを使いたい Jenkins ジョブに移動します。
  2. 左側のメニューから [設定] をクリックします。
  3. 「ビルド」セクションで [ビルド手順の追加] をクリックして IncrediBuild ビルドステップを選択します。
  4. 選択したビルドステップ名とパラメーターの設定フィールドが表示されます (下の画像を参照)。各パラメーター横のヘルプ アイコンをクリックすると関連情報が表示されます。
  5. 各 IncrediBuild ビルドステップの設定方法については次のセクションをご覧ください。
  6. [保存] をクリックします。


BuildConsole (Visual Studio)

このビルドステップでは Visual Studio のソリューションやプロジェクトのコンパイルを分散、高速化するために、IncrediBuild BuildConsole コマンドのラッパーを使用します。

Visual Studio でのコンパイルの高速化については、IncrediBuild オンライン マニュアルの「IncrediBuild for Visual Studio」をご覧ください。


必須項目

ソリューション構成またはプリセット ファイルを適用するターゲット ソリューションの設定が必須です。プラグインは矛盾するオプションが選択されていないことを検知します。

オプション項目

BuildConsole のオプション項目は次のセクションに分かれています。Target and ConfigurationDistribution ControlOutput and LoggingMiscellaneousAdvanced


 IncrediBuild Jenkins plugin - Visual Studio build step

IncrediBuild Jenkins プラグイン - Visual Studio ビルドステップ

IncrediBuild for Make and Other Build Tools

このビルドステップでは 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 = Batchfile) で実行コマンドが指定されている場合は、IncrediBuild で /m 値の変更方法を判断できないため変更を行いません。この場合は手動で /m 値を大きな値への書き換え、または追加する必要があります (MSBuild では 40 以上、Make では 100 以上を推奨)。

オプション項目

オプション項目には次のセクションがあります。Distribution ControlOutput and Logging、Miscellaneous


IncrediBuild Jenkins プラグイン - Make & Other Build Tools ビルドステップ

IncrediBuild for Dev Tools

このビルドステップでは IncrediBuild IBConsole コマンドラインのラッパーを使用して、ユニットテスト、QA スクリプト、パッケージング、コード解析、アセットビルド、シミュレーションなど、さまざまなマルチプロセスのカスタム処理を高速化します。

IIncrediBuildを使用して、テスト、コード分析、アセット作成、その他のカスタム処理などのさまざまな開発の実行を高速化する方法の詳細については、IncrediBuild オンラインマニュアルの「IncrediBuild for DevTools」をご覧ください。


必須項目

実行コマンドの設定が必須です (例: MyUnitTests.bat)。

オプション項目

オプション項目には次のセクションがあります。Distribution control、Output and Logging、Miscellaneous。


IncrediBuild Jenkins plugin - DevTools build step

IncrediBuild Jenkins プラグイン - DevTools ビルドステップ


IB Console (Linux)

IncrediBuild for Jenkins プラグインはマルチプラットフォームに対応しており、Linux OS 上で実行される Jenkins ビルドを高速化することもできます。Jenkins の Linux ビルド エージェントによって開始されたビルドを高速化するために、Linux 版の IncrediBuild を適切にインストール、設定する必要があります。 

Linux での Jeknins を使ったビルドを高速化する方法については support1@IncrediBuild.com までお問い合わせください。


必須項目

ターゲット ソリューション ファイル ([Target Solution File]) の設定が必須です。

オプション項目

ib_console のオプション項目は次の画像をご覧ください。


IncrediBuild Jenkins plugin - Linux build step

IncrediBuild Jenkins プラグイン - Linux ビルドステップ


ビルドステップの設定フィールド

このセクションでは IncrediBuild for Jenkins のビルド手順で設定できるさまざまな項目について解説します。

項目

説明

Target Solution File

ビルドするソリューション ファイル。

Build Type

実行するビルドのタイプ。

Configuration

ビルドするソリューションの構成を決定します (例: Debug|Win32)。コンマで区切って複数の構成を指定できます (例: 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 パスの代わりに、PATHINCLUDELIBPATHLIB 環境変数を使用します。

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バージョン を指定します。

Build Title

ビルド出力テキストの先頭に表示するカスタム ヘッダーに表示される文字列を指定します。タイトルはビルド履歴ビルドモニターにも表示されます。

Save IncrediBuild Monitor File

ビルドの進行状況を記録する (.ib_mon) ファイルのコピーを指定した場所に書き込みます。フォルダ名のみを指定した場合は GUID という名前でファイルが生成されます。.ib_mon ファイルの場所を含むメッセージがビルド出力の末尾に追加されます。

Suppress STDOUT

標準出力にビルド時出力を一切表示しません。

Output Log File

ビルド出力を指定したファイルに書き込みます。

Show Commands in Output

ビルド実行時に使用したコマンドラインを出力に表示します。

Show Agents in Output

各ファイルのビルドに使用された Agent を出力に表示します。

Show Time in Output

ビルドされた各ファイルの開始時刻と終了時刻を表示します。

Hide IncrediBuild Header in Output

ビルド出力で IncrediBuild ヘッダーを非表示にします。

Internal IncrediBuild Logging Level

IncrediBuild 内部のログ レベルをオーバーライドします。出力やユーザーがアクセス可能なログへの影響はありません。IncrediBuild サポートで問題のトラブルシューティングを行う際に使用します。

Set an Environment Variable

ビルド コンテキストの環境変数を設定またはオーバーライドします。

Stop On Errors

エラー発生時に直ちに処理を停止します。  この動作は Visual Studio ビルドではデフォルトですが、Make & Build Tools  Dev Tools のビルドではオプションです。

Additional Arguments

BuildConsole の引数を手動で追加します。この値は BuildConsole コマンドラインに連結されます。

Nice Value

Nice 値を指定します