これはしばらくの間私を悩ませてきました。環境変数のリストがあり、自分のカスタム プラグインのビルドの 1 つの構成でそれらを使用したいと考えています。
${WORKSPACE}
したがって、この場合、環境によって構成されたパスに解決したいと思います。
誰でもこれを行う方法を知っていますか? Jelly タグとしては見つからないようです。
これはしばらくの間私を悩ませてきました。環境変数のリストがあり、自分のカスタム プラグインのビルドの 1 つの構成でそれらを使用したいと考えています。
${WORKSPACE}
したがって、この場合、環境によって構成されたパスに解決したいと思います。
誰でもこれを行う方法を知っていますか? Jelly タグとしては見つからないようです。
あなたが求めている変数展開のタイプは、ビルドステップ自体によってのみ実行できます。これが独自のプラグインである場合は、ここで提案する変更を適用できます。それ以外の場合は、いつでもプラグインの作成者に依頼してください。いずれかを除いて、提供されている回避策 Slav に頼る必要があります。
プラグインのソースにアクセスできる場合は、ビルド ステップの実行中に変数を展開する方法を次に示します。ビルド ステップ クラスは SanityTestResultsToJUnitXMLBuilder であると仮定します。このクラスのperform
メソッド内で、ソース ディレクトリ フィールドと宛先ディレクトリ フィールドを展開する必要があります。簡潔にするために、ビルド ステップで通常見られる他のコードのプレース ホルダーを追加しました。
public class SanityTestResultsToJUnitXMLBuilder extends Builder {
private final String sourceDirectory;
private final String destinationDirectory;
/* Constructor and getters typically appear here. */
@Override
public void perform(AbstractBuild<?, ?> build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException {
EnvVars environment = build.getEnvironment(listener);
String expandedSourceDirectory = environment.expand(sourceDirectory);
String expandedDestinationDirectory = environment.expand(destinationDirectory);
/* The rest of the perform() logic goes here */
}
/* Other methods typically appear here. */
/* The Descriptor typically appears here. */
}
何を求めているのか正確にはわかりませんが、次の方法で$WORKSPACE
環境変数を取得できます。
def workspace = manager.build.getEnvVars()["WORKSPACE"]