2017-11-22 16 views
0

젠킨스에서 선택 매개 변수를 구성하고 싶습니다.그루비 스크립트를 실행하여 문자열의 설명을 채우려하지만 스크립트가 출력을 반환하지 않으면 그 이유는 무엇입니까?

구성하고 싶은 매개 변수를 CIDR이라고합니다.

"확장 매개 변수 매개 변수"플러그인을 사용해 보았지만 아무 소용이 없습니다.

내가하려는 것은 이미 사용중인 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 

스크립트는 터미널에서 제대로 실행 : 사용 CIDRs에 이미 나열하기 위해

, 나는 다음과 같은 그루비 코드를 작성 스크립트를 실행할 수있는 스크립트 내 승인.

그러나 문자열 설명의 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 
} 

이제 매개 변수를 사용할 수 CIDRs로 채워집니다 : 다음 코드와 스크립트를 변경

문제를 해결했다.

0

사소한 것 같습니다. 아래에서 시도하십시오.

변경에서 :

println p.text 

사람 :

return p.text