2

システム groovy スクリプトから jenkins パラメータをジョブに追加しています (1 つのビルド ステップ):

1段目

import hudson.model.*
def pa = new ParametersAction([
    new StringParameterValue("firstParam", 1), new StringParameterValue("secondParam", 2)
])
Thread.currentThread().executable.addAction(pa)

次のシステム groovy ビルド ステップを実行しようとすると、それらを探していますが、そこにはありません。

2 番目のステップ。

def firstParam = "firstParam"
def secondParam = "secondParam"
def resolver = build.buildVariableResolver
def firstParamValue = resolver.resolve(firstParam)
def secondParamValue = resolver.resolve(secondParam)
println firstParamValue
println secondParamValue  

どちらも null を出力します! 次のシステム groovy ビルド ステップでパラメーターを取得するにはどうすればよいですか?

奇妙なことに、次のステップとしてシェルの実行を試みると、次のようになります。

echo $firstParam
echo $secondParam

1と2の両方が印刷されます。

以下のコードですべてのパラメーターを出力しようとしても、取得できません。

def thr = Thread.currentThread()
def build = thr?.executable
def parameters = build?.actions.find{ it instanceof ParametersAction }?.parameters
parameters.each {  
  println "parameter ${it.name}:"
  println it.dump()
  println "-" * 80
}
4

1 に答える 1

0

設定されている文字列パラメーターが文字列ではなく整数であるため、最初のビルドステップが機能しませんでした。実行時エラーが発生しました。私はこれに変更し、それは動作します.2番目のステップはパラメータを取得します(整数値の周りに引用符を追加し、現在のビルドに「ビルド」変数を使用しました):

import hudson.model.*

def pa = new ParametersAction([
    new StringParameterValue("firstParam", '1'), new StringParameterValue("secondParam", '2')
])
build.addAction(pa)

Jenkins v1.519でこれを試しています。

于 2013-07-18T07:15:49.733 に答える