ジェンキンスのバージョン: 2.6、Linux
問題: パラメーター化されたビルド変数は、実行ステップの「シェル スクリプト」で (env 変数として) 表示されません。以前の 1.x jenkins バージョンでは表示されていました。
手順:
- マルチ構成プロジェクトでパラメーター化されたビルドを作成します。
- ビルドにパラメーターを追加します ( This project is parameterized-> string parameter, {if that matter} を使用)。
- ビルドステップ「シェルの実行」をジョブに追加します。
このシェル スクリプトのこれらのパラメーターに環境変数としてアクセスします。
echo "++++++++++++ building $lib_name ($lib_version) ++++++++++++++"
これを解決するために、「実行用の環境を準備する」セクションで groovy スクリプトを作成しようとしました。環境変数としてシェルスクリプトに渡されるハードコードされた値を使用して環境変数を作成しました。
def map = ['lib_name':'lib1']
map['lib_version'] = 'master'
return map
しかし、ハードコーディングしないと、Groovy API を使用して Jenkins ビルド パラメーターを取得する方法のソリューションを使用しても、これらの変数値にアクセスできません 。
他に何をしなければならないかわかりません。誰か提案してもらえますか?
---> この質問に関するコメントに基づいて更新しています:ジェンキンスで次の行を実行すると、例外が発生します:
def buildVariablesMap = Thread.currentThread().executable.buildVariables
buildVariablesMap.each{ k, v -> println "${k}:${v}" }
FATAL: No such property: executable for class: hudson.model.OneOffExecutor
groovy.lang.MissingPropertyException: No such property: executable for class: hudson.model.OneOffExecutor
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:53)
at org.codehaus.groovy.runtime.callsite.GetEffectivePojoPropertySite.getProperty(GetEffectivePojoPropertySite.java:66)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:296)