ジェンキンス 1.x
次の groovy スニペットは、(既に提供されているように) バージョンを渡し、ジョブの変数に「miniVersion」として格納する必要があります。
import hudson.model.*
def env = System.getenv()
def version = env['currentversion']
def m = version =~/\d{1,2}/
def minVerVal = m[0]+"."+m[1]
def pa = new ParametersAction([
new StringParameterValue("miniVersion", minVerVal)
])
// add variable to current job
Thread.currentThread().executable.addAction(pa)
その後、変数は他のビルド ステップからアクセスできるようになります。例えば
echo miniVersion=%miniVersion%
出力:
miniVersion=12.34
「Groovy プラグイン」ではなく、「システム Groovy スクリプト」(マスター ノードのみ) を使用する必要があると思います - https://wiki.jenkins-ci.org/display/JENKINS/Groovy+plugin# Groovyplugin-GroovyScriptvsSystemGroovyScript
ジェンキンス 2.x
以前の ( Jenkins 1.x ) の動作は、このセキュリティ アドバイザリが原因で機能しなくなったと思います...
解決策 (セキュリティ アドバイザリからの言い換え)
hudson.model.ParametersAction.keepUndefinedParameters
システム プロパティを に設定すると、以前の動作に戻すことができますtrue
。これは非常に危険な可能性があり、短期的な回避策としてのみ意図されています。
java -Dhudson.model.ParametersAction.keepUndefinedParameters=true -jar jenkins.war
特定の既知の安全なパラメーター名をビルドに渡すことができるようにするには、システム プロパティhudson.model.ParametersAction.safeParameters
を安全なパラメーター名のコンマ区切りリストに設定します。
例えば
java -Dhudson.model.ParametersAction.safeParameters=miniVersion,FOO,BAR -jar jenkins.war
groovy では、これらの 2 行は次のように記述します。
System.setProperty("hudson.model.ParametersAction.keepUndefinedParameters","true");
System.setProperty("hudson.model.ParametersAction.safeParameters","miniVersion,FOO,BAR");