Jenkinsとの統合
この機能は、Incredibuild のEnterprise Plan でのみ利用可能です。
Jenkins はプロジェクトを継続的にビルドおよびテストし、また外部実行ジョブのモニタリングを行うような開発フローで広く使用されている継続的インテグレーション ツールの 1つです。様々なソースの管理、ビルド、テスト、解析、デプロイメント システムに対応した豊富なプラグインを利用できます。
Incredibuild はビルド、テストなどの開発プロセスを分散ネットワーク上で同時に処理できる高速化のテクノロジーです。
Incredibuild for Jenkins プラグインを使うと Jenkins ノードを拡張して、ローカル ネットワークやパブリッククラウドのマシン間でプロセスをシームレスに分散できます。Incredibuild はネットワーク上にあるアイドル状態の CPUを使用することで、Jenkins ノードをスーパーコンピュータに変換します。ローカルコアだけでなくすでに所有している数百ものコアを活用することでコンパイル、ユニットテスト、QA スクリプト、コード解析、パッケージング、アセットの作成など、時間のかかる処理を大幅に高速化します。
Incredibuild のメリットを最大限に活かすには、Incredibuild Agent をすべての Jenkins ノードとアイドル状態の CPU サイクルを Incredibuild 分散環境に提供できる他のすべてのマシンにインストールすることをお勧めします。
ビルドに参加する (アイドル状態の CPU を Incredibuild 分散システムに提供する) リモートマシンには Incredibuild Agent のみインストールされていれば良く、ソースコード、ツールチェーン、その他のファイルをコピーしたり、設定したりする必要はありません。
処理に必要なデータはすべて Incredibuild のプロセス仮想化メカニズムにより、必要に応じて Incredibuild 固有のサンドボックスにコピーされます。
Jenkins の設定
システム要件
Incredibuild for Jenkins プラグインは Jenkins 1.580.1 以降のバージョンで動作確認済みですが、それ以前のバージョンでも動作する可能性があります。ほかのプラグインとの依存関係はありません。
Jenkins のビルドを高速化するにはご利用の環境に Incredibuild システムをセットアップする必要があります。
インストール
Incredibuild for Jenkins プラグインをインストールする
- Incredibuild Jenkins プラグインをダウンロードするには、ここをクリックします。
- hpi ファイルを /JENKINS_HOME/plugins ディレクトリにコピーします。
- Jenkins サービスを再起動します。
Jenkinsにおけるプラグインのインストールに関する詳細は、Jenkinsのマニュアルの、「プラグインのインストール方法」 セクションを参照してください。
プラグインの設定
プラグインは設定が不要です。
Jenkinsエージェントノードの構成
Incredibuild のビルド ステップを実行するすべての Jenkins ノードに Agent が正しくインストール、設定されていることを確認します。また、Jenkins ジョブを実行するユーザーの環境変数 PATH に Incredibuild インストール フォルダが含まれていることを確認します。
Incredibuild ビルド ステップ
Incredibuild ビルド ステップを使用する
Incredibuild for Jenkins プラグインは、シェルやバッチスクリプトでコマンドを実行する代わりに、Incredibuild の BuildConsole と IBConsole コマンドのラッパーを提供します。

ビルド ステップを Jenkins ジョブに追加する
Incredibuild Jenkins プラグインをインストールすると 4 つのビルド ステップが追加されます (ドロップダウン メニューで選択)。
Incredibuild のビルド ステップを Jenkins ジョブに追加する手順は次の通りです。
- Incredibuild コマンドを使いたい Jenkins ジョブに移動します。
- 上部左側のメニューから [設定] をクリックします。
- ページのビルドステップセクションで、ドロップダウンメニューから[Add build step] をクリックし、利用可能なIncredibuildビルドステップを1つ選択します。
- 選択したビルド ステップ名とパラメーターの設定フィールドが表示されます (下の画像を参照)。パラメーター横のヘルプ アイコンをクリックすると詳細が表示されます。
- Incredibuild の各ビルド ステップの設定方法については次のセクションをご覧ください
- 設定ページで[Save] をクリックします。
BuildConsole (Visual Studio)
このビルド ステップでは Visual Studio のソリューションやプロジェクトのコンパイルを分散、高速化するために、Incredibuild BuildConsole コマンドのラッパーを使用します。
Visual Studio のコンパイルを高速化するための Incredibuild の使用に関する詳細については、「Visual Studio向けIncredibuild 」 をご覧ください。
必須設定
ステップ設定ではソリューション構成またはプリセット ファイルを適用するターゲット ソリューションの設定が必須です。プラグインは矛盾するオプションが選択されていないことを検知します。
任意設定
他のBuildConsoleオプションのパラメータはTarget and Configuration、Distribution Control、Output and Logging、Miscellaneous 、Advanced のようにグループ化されています。
Make & Build ツール
このビルドステップは、Incredibuild "BuildConsole \Command"のコマンドラインのラッパーを提供し、Make、MSBuild、WAF、ninja、scons、CMake または Incredibuild がデフォルトでサポートするその他のビルドシステムに基づくプロジェクトのビルドプロセスを高速化します。
事前に定義された対応ビルドツールの完全なリストと、Incredibuild を使用して Make や他のビルドツールを高速化する詳細は、対応ツール を参照してください。
必須設定
ステップ設定には、実行するコマンドを設定する必要があります(例:make all )。
Incredibuild はデフォルトで並行プロセス スイッチを自動的に追加することに留意してください (Make ではこのスイッチは-j 、。MSBuild では /m: という名称となります)。並行プロセス スイッチがすでにコマンドラインの一部である場合、Incredibuild はより多くのプロセスを並行して実行(および分散)するために、その値をより大きな値に変更します。
例えば、MSBuildでは、Incredibuildは既存の/m スイッチの値を/m64に、Makeビルドシステムでは、-Jフラグは-j200に変更されます。ビルドを実行する MSBuild コマンドが記載されたバッチファイル (/commnad = Batchfile) で実行コマンドが指定されている場合は、/command = Batchfile) で、ビルドを実行する MSBuild コマンドが Batch ファイル内にある場合、Incredibuild は/m の値をどう変更すればいいのか判断できないので、その値は変更されません。この場合、/m コマンドを高い値で置き換えるのか、または、追加するの決定します。(奨はMSBuildで40以上、Make ビルドシステム系で100以上です)。
任意設定
BuildConsole のオプションパラメータは、Distribution Control、Output およびLogging and Miscellaneous のようにグループ化されています。
DevTools
このビルド ステップでは Incredibuild IBConsole コマンドラインのラッパーを使用して、ユニットテスト、QA スクリプト、パッケージング、コード解析、アセットビルド、シミュレーションなど、さまざまなマルチプロセスのカスタム処理を高速化します。
Incredibuild を使用して、テスト、コード解析、アセット作成、またはその他のカスタム実行など、さまざまな開発実行を加速するための詳細については、「DevTools 用 Incredibuild」 をご覧ください。
必須設定
ステップ設定では実行コマンドの設定が必須です (例: MyUnitTests.bat)。
任意設定
BuildConsole の任意のパラメーターは、Distribution Control、Output、Logging、Miscellaneous に分類されます。
ビルド ステップの設定項目
ここでは 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 |
特定のプロジェクトでビルドに失敗してもソリューションのビルドを継続します。通常プロジェクトで出力ファイルのビルドに失敗するとビルドを停止しますが、このオプションを使って残りのビルドを継続することができます。 |
UseEnv |
PATH、INCLUDE、LIBPATH、および、LIBの環境変数をMS Visual C++ IDE パス の代わりに使用します。 |
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 |
Msbuild をdevenv の代わりにトップビルドマネージャーとして設定します。デフォルトのDevenv ビルドで問題が発生した場合、または、MsbuildArgs オプションを使って、msbuildに手動で引数を渡す必要がある場合のみ、このオプションを使用し ます。 |
Arguments for Msbuild |
BuildConsole コマンドのUseMsbuild スイッチを使用する際に、MSBuild に追加の引数を渡します。 |
Profile.xml |
Profile XML ファイルは、自動割込み(システム) インターフェイス が分散ジョブに関わる様々な処理を、どのように扱うべきかを定義するために使用されます。Visual Studio あるいはMake and Build ツール のビルドには必要ありません。しかし、これらのビルドが、パッケージに含まれない追加のプロセスを使用する場合、構成オプションを提供するために使用することができます。Dev Tools のビルドでは、分散可能なプロセスを設定する必要があります。 |
Avoid task execution on local machine when possible |
[Agent Settings] の [Avoid task execution on local machine when possible] の設定を上書きします。このオプションを有効にすると Initiator マシンのリソースが解放されます。Initiator マシンの CPU 使用率が高く、ビルドのボトルネックになっている場合に役立つことがあります。 |
Maximum CPUs to utilize in the build |
ビルドで使用するリモート コアの上限数を指定します。グローバルな 最大値を上書きします。ビルド設定のCPU/Cores |
Newest allowed Helper machine OS |
Helper としてビルドに参加できるマシンの OS (最新のバージョン) を指定します。 |
Oldest allowed Helper machine OS |
Helper としてビルドに参加できるマシンの OS (最古のバージョン) を指定します。 |
Build Title |
ビルド出力をテキスト表示する際にテキストの先頭に表示するカスタム ヘッダーを設定します。このタイトルは、Build History とBuild Monitor の表示にも使用されます。 |
Save Incredibuild monitor file |
ビルド進行 (.ib_mon) ファイルのコピーを指定された場所に書き込みます。フォルダー名だけが与えられた場合、Incredibuild はファイル名に対してGUID を生成します。.ib_mon ファイルの保存場所がビルド出力の最後に追加されます。 |
Suppress STDOUT |
標準出力に何も書き込みません。 |
Output Log file |
ビルド出力をファイルに書き込みます。 |
Show Commands in Output |
Incredibuild がビルドで使用したCommand Lineを出力ファイルに表示します。 |
Show Agents in output |
ビルドで使用した Agent を出力ファイルに表示します。 |
Show Time in output |
ビルドの開始時刻と終了時刻を出力ファイルに表示します。 |
Hide Incredibuild Header in output |
ビルド出力の Incredibuild ヘッダーを非表示にします。 |
Internal Incredibuild logging level |
ビルドに適用する Incredibuild の内部ログのレベルを上書きします。出力やユーザーがアクセスできるログには影響しません。問題を調査する際にサポート部門で使用します。 |
Set an Environment Variable |
ビルドのコンテキストに合わせて環境変数を設定または上書きします。 |
Stop On Errors |
有効にするとエラーが発生した時点でビルドを停止します。これはVisual Studio ビルドの既定値のビヘイビアですが、Make and Buildツール やDev Tools ビルドの既定値ではありません。 |
Additional Arguments |
buildconsole の引数を手動で追加します。この値は buildconsole のコマンドラインの末尾に追加されます。 |
Nice Value |
nice 値を指定します |