「ヘルパー」と「メイン」の2つのジョブと、単一のjenkinsインスタンス(ホストとエグゼキューター)があります。
ヘルパーはサードパーティのリソースを管理し、メインジョブの準備を行います(正確には、テスト用にアプリケーションをデプロイするための環境を作成します)。
ヘルパージョブの唯一のアーティファクトは、メインジョブ用に特別に準備された環境のIPを含む単一のファイルです。
この場合、ビルドをヘルパーからメインに戻すにはどうすればよいですか?
「ヘルパー」と「メイン」の2つのジョブと、単一のjenkinsインスタンス(ホストとエグゼキューター)があります。
ヘルパーはサードパーティのリソースを管理し、メインジョブの準備を行います(正確には、テスト用にアプリケーションをデプロイするための環境を作成します)。
ヘルパージョブの唯一のアーティファクトは、メインジョブ用に特別に準備された環境のIPを含む単一のファイルです。
この場合、ビルドをヘルパーからメインに戻すにはどうすればよいですか?
あなたは、IPを持つファイルを「メイン」ジョブに渡すだけでよいと言っています。必要なのがそのIPだけである場合、(ファイルなしで)それを行うより簡単な方法があります。両方について説明します。
「ヘルパー」ジョブでは、ワークスペースからそのファイルをアーカイブする必要があります。
ここで、「メイン」ジョブで、前の(「ヘルパー」)ジョブからこのアーティファクトをコピーする必要があります。
**/yourartifactname*.*
アーティファクト名を「ヘルパー」ジョブで構成したものを使用します。フロントで使用**/
すると、アーティファクトに到達する前にディレクトリ構造が無視されることを確認しますこれで、「メイン」ジョブのワークスペースに「ヘルパー」ジョブのファイルが含まれます。ワークスペース内の他のファイルと同じように使用します
前述したように、必要なのが「ヘルパー」ジョブのある時点で変数として持っている1つのIPアドレスだけである場合は、他のプロジェクトのステップでビルドをトリガー/呼び出しを使用して「メイン」ジョブに送信するだけです。 「ヘルパー」ジョブのステップ3と4で構成したもの。この場合、「メイン」ジョブで特別な構成は必要ありません。
VarForMain=$VarFromHelper
。ここで、VarFromHelper
はIPアドレスを含む「ヘルパー」ジョブVarForMain
の環境変数であり、は「メイン」ジョブでこの値に設定される環境変数です。これらが同じ名前を持つことができない理由はありません。これで、「メイン」ジョブで、$VarForMain
他の環境変数と同じように参照できます。
受け入れられた答えは私の場合は役に立ちませんでしたが、私はちょうどトリックを思いついた:
次のシェルコマンドを使用してメインジョブを作成します
echo "PARAMS_FILE=${WORKSPACE}/build-${BUILD_NUMBER}.params" > "${WORKSPACE}/build-${BUILD_NUMBER}.params"
サブジョブをビルドステップ(ビルド後のステップではなく)に追加して作成します
ファイルをパラメーターソースとしてサブビルドに渡し、ビルドに次のようなスクリプトの行でファイルを更新させます。
echo "MY_VAR=some_value" >> "$PARAMS_FILE"
このようにして、後続のすべてのジョブの環境が前のジョブの結果で更新されます。