Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

概要

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

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

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

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

ビルドに参加する (アイドル状態の CPU サイクルを IncrediBuild システムに提供する) リモートマシンには IncrediBuild Agent のみインストールが必要です。ソースコード、ツールチェーン、その他のファイルをコピーする必要はありません。

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

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


Jenkins の設定

システム要件

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

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


Info

IncrediBuild for Jenkins プラグインの使用には IncrediBuild Enterprise Edition が必要です。

インストール

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

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

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

プラグインの設定

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

Jenkins スレーブ ノードの設定

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

オプション項目

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


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

IncrediBuild for Dev Tools

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

Visual Studio でのコンパイルの高速化については、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 を使ったビルドを高速化する方法については support@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 使用率がビルドのボトルネックになっているケースの分散に有効です。

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

IncrediBuild がビルドする際に使用したコマンドラインをビルドされた各ファイルに表示します。

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 コマンドラインに連結されます。

Internal IncrediBuild Logging Level

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

Nice Value

Nice 値を指定します。