Jenkins 向けプラグイン

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 for Jenkins プラグインをインストールする

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

Jenkinsにおけるプラグインのインストールに関する詳細は、Jenkinsのマニュアルの、「プラグインのインストール方法」 セクションを参照してください。

プラグインの設定

プラグインは設定が不要です。

Jenkins スレーブ ノードの設定

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

Incredibuild ビルド ステップ

Incredibuild ビルド ステップを使用する

Incredibuild for Jenkins プラグインは、シェルやバッチスクリプトでコマンドを実行する代わりに、Incredibuild の BuildConsole と IBConsole コマンドのラッパーを提供します。

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

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

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

Incredibuild のビルド ステップを Jenkins ジョブに追加する手順は次の通りです。

  1. Incredibuild コマンドを使いたい Jenkins ジョブに移動します。
  2. 上部左側のメニューから [設定] をクリックします。
  3. ページのビルドステップセクションで、ドロップダウンメニューから[Add build step] をクリックし、利用可能なIncredibuildビルドステップを1つ選択します。
  4. 選択したビルド ステップ名とパラメーターの設定フィールドが表示されます (下の画像を参照)。パラメーター横のヘルプ アイコンをクリックすると詳細が表示されます。
  5. Incredibuild の各ビルド ステップの設定方法については次のセクションをご覧ください
  6. 設定ページで[Save] をクリックします。

BuildConsole (Visual Studio)

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

Visual Studio のコンパイルを高速化するための Incredibuild の使用に関する詳細については、「Visual Studio向けIncredibuild 」 をご覧ください。

必須設定

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

任意設定

他のBuildConsoleオプションのパラメータはTarget and ConfigurationDistribution ControlOutput and LoggingMiscellaneousAdvanced のようにグループ化されています。

 Incredibuild Jenkins プラグイン (Visual Studio のビルドステップ)

Incredibuild Jenkins プラグイン (Visual Studio のビルドステップ)

Make & Build ツール

このビルドステップは、Incredibuild の「BuildConsole \Command」コマンドラインのMake、MSBuild,、WAF、 ninja、scons、CMake または Incredibuild がデフォルトで対応している他のビルドシステムがベースのプロジェクトの、ビルドプロセスを加速するためのラッパーを提供します。

定義済みサポートビルドツールの全リストと、 Make やその他のビルドツールをIncredibuild を使用して高速化するための詳細情報については、「Incredibuild for Makeとその他のビルドツール向けのIncredibuild」 を参照してください。

必須設定

ステップ設定には、実行するコマンドを設定する必要があります(例: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 ControlOutput およびLogging and Miscellaneous のようにグループ化されています。

Incredibuild Jenkins プラグイン (Make & Build ツールのビルド ステップ)

DevTools

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

Incredibuild を使用して、テスト、コード解析、アセット作成、またはその他のカスタム実行など、さまざまな開発実行を加速するための詳細については、「DevTools 用 Incredibuild」 をご覧ください。

必須設定

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

任意設定

BuildConsole の任意のパラメーターは、Distribution Control、Output、Logging、Miscellaneous に分類されます。

Incredibuild Jenkins プラグイン (DevTools のビルドステップ)

IB Console (Linux)

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

Jeknins Linuxビルドの高速化については、support@Incredibuild.com 宛で弊社までご連絡ください。

必須設定

ステップ構成では、Target Solution File を設定する必要があります。

任意設定

ib_console の任意項目は次の画像をご覧ください。

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

特定のプロジェクトでビルドに失敗してもソリューションのビルドを継続します。通常プロジェクトで出力ファイルのビルドに失敗するとビルドを停止しますが、このオプションを使って残りのビルドを継続することができます。

UseEnv

PATHINCLUDELIBPATH、および、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

Msbuilddevenv の代わりにトップビルドマネージャーとして設定します。デフォルトの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 HistoryBuild 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 値を指定します