2017-11-22 9 views
0

私はJenkinsで選択パラメータを設定したいと思います。文字列の説明を取り込むためにgroovyスクリプトを実行しようとしましたが、スクリプトは出力を返しませんでしたが、その理由は何ですか?

設定したいパラメータをCIDRといいます。

私は "Extended choice parameter"プラグインを使ってみましたが、役に立たなかった。

私がしようとしているのは、既に使用されているCIDRを考慮して、選択したCIDRを手動で挿入させることです - >私はグルービースクリプトを実行して、文字列の説明に既にCIDR使用中で。私もジェンキンスで不審な署名を受け入れ

[email protected] ~ - $ groovy cidrs.groovy 
172.31.0.0/16 
172.51.0.0/16 
172.51.0.0/16 

#!/usr/local/bin/groovy 
def p = ['/usr/local/bin/aws', 'ec2', 'describe-vpcs'].execute() | 'grep CidrBlock'.execute() | ['awk', '{print $2}'].execute() | ['tr', '-d', '"\\"\\|,"'].execute() 
p.waitFor() 
println p.text 

スクリプトは、端末に適切に実行されます。使用のCIDRですでにリストアップするために

は、私は次のGroovyコードを書きましたスクリプトの実行を許可するスクリプト内承認。

しかし、私はそれを文字列記述のGroovyスクリプトセクションに挿入し、 "パラメータでジョブをビルド"を実行すると、文字列ドロップダウンは空のままです。

私は間違っていますか?

答えて

0

パラメータが空の状態に保つ理由それはそうと、 "拡張の選択パラメータ" プラグインが期待していることです出力は配列になります。次のコードにスクリプトを変更

はこの問題を解決:

#!/opt/groovy-2.4.12/bin/groovy 
def p = ['/usr/bin/aws', 'ec2', 'describe-vpcs'].execute() | 'grep CidrBlock'.execute() | ['awk', '{print $2}'].execute() | ['tr', '-d', '"\\"\\|,"'].execute() 
p.waitFor() 
def output = [] 
p.text.eachLine { line -> 
    output << line 
} 

output.each { 
    println it 
} 

今のパラメータは、利用可能なのCIDRが移入されます。

0

外見上の問題はありません。以下を試してください。

変化から:

println p.text 

へ:

return p.text 
関連する問題