.run および .runwait
注: Build Forge 8.0 の Java エンジンでは、.run および .runwait に対する条件 [-c<condition>] はサポートされません。
条件に応じた起動にするには、代わりに条件付きステップを使用します。
.run [-c "<condition>"] "<ProjectName>"
.runwait [-c "<condition>"] "<ProjectName>"
.run コマンドと .runwait コマンドを使用して、チェーニングされたプロジェクトをステップ・コマンドから起動することができます。プロジェクトに複数のスナップショットがあれば、システムはデフォルト・スナップショットを実行します。
これらのコマンドは、プロジェクトを起動した後の振る舞いに違いがあります。
- .run コマンドは指定されたプロジェクトをチェーンとして起動し、 チェーンされたプロジェクトの環境変数継承の規則に従います。
- .runwait コマンドは、指定されたプロジェクトを起動します。起動したプロジェクトが完了する間、
起動ステップは待機します。起動したプロジェクトが完了すると、システムは、起動したプロジェクトの完了状況に従って、
起動ステップの結果値を pass または fail に設定します。重要: .runwait を使用するステップを含むプロジェクトは、 実行時に 2 つのジョブ・スロットを消費します。ジョブ・スロットを十分に使用できない場合、 ステップはエラーで失敗します。重要: .run コマンドまたは .runwait コマンドを使用して起動したプロジェクトでは、「ビルド結果」ページに チェーン・リンク・アイコンが生成されません。
条件付き起動
オプションの -c パラメーターを使用して、条件別の起動を実行することができます。
条件には
環境変数を使用することができます。条件には以下のいくつかの形式が
あります。
- ストリング比較
- 等号 (=) または非等号 (!=) 演算子を使用して、ストリングを評価することができます。 比較が真と評価すれば、チェーンが起動されます。
- 数値比較
- <、>、<>、><、または = 演算子を使用し、2 つの 数値を比較します。
- コマンド成功
- backtick に囲まれたコマンドを、-c パラメーターの値として使用することができます。 システムがコマンドを実行し、成功するとチェーンが起動されます。
例
.run "BuildWindowsDriver"
システムは BuildWindowsDriver プロジェクトを起動します。起動プロジェクトは すぐに次のステップで続行します。
.runwait "BuildWindowsDriver"
システムは BuildWindowsDriver プロジェクトを起動します。システムは、 .runwait ステップで起動プロジェクトを一時停止します。BuildWindowsDriver プロジェクトが 完了して成功すると、.runwait ステップの状況は pass に設定されます。
.run -c "$HOMEDRIVE=C:" "Simple Echo"
HOMEDRIVE 変数に値 C がある場合のみ、システムはプロジェクト Simple Echo を 実行します。
このコマンドは以下のように
(ステップ・ログの EXEC セクションに) ログ出力を生成します。
- HOMEDRIVE が C の場合:
.run Condition: 'C:' = 'C:' satisfied. Queueing Project "Simple Echo" on server [WinBox]. Queued Build 'BUILD_202' of project 'Simple Echo'.
- HOMEDRIVE が C でない場合:
.run -c "$HOMEDRIVE=C:" "Simple Echo" .run Condition: 'D:' = 'C:' unsatisfied, no project queued.
ストリングに数値が含まれる場合、システムはストリングを数値的に 比較することができます。例えば、以下の場合には、次に示すように処理します。
.runwait -c "a12b<c42d" "Simple Echo"
.run Condition: '12' < '42' satisfied.
Queueing Project "Simple Echo" on server [WinBox].
Waiting for .run build (4411) to complete.
.run build is now running.
.run build has finished.
Build 'BUILD_203' of project 'Simple Echo' completed.
.runwait -c "f43g<>h43i" "Simple Echo"
.run Condition: '43' <> '43' unsatisfied, no project queued.
以下の例に、コマンドを条件として使用する方法を 示します。コマンドは引用符と backtick の両方で囲む必要があることに注意してください。
.run -c "`exit 1`" "Simple Echo"
Env .run encountered an error during variable expansion,
parameter [`exit1`] expanded to [].
Expansion returned non-zero exit, project will not be queued.
.run -c "`exit 0`" "Simple Echo"
Expansion returned zero exit, project will be queued.
Queueing Project "Simple Echo" on server [WinBox].
Queued Build 'BUILD_204' of project 'Simple Echo'.
.runwait を使用し、ビルドが失敗する場合、 ログは次のように表示されます。
.runwait "Fail Build"
Queueing Project "Fail Build" on server [WinBox].
Waiting for .run build (4413) to complete.
.run build is now running.
.run build has finished.
Build 'BUILD_3' of project 'Fail Build' Failed, setting step status to fail.