Это работает:
steps {
script {
def images_ls_output = sh(script: "aws ec2 describe-images --query Images[*].[Name] --owner 111111111111 --region us-east-2 --output=text", returnStdout: true).trim()
println "${images_ls_output}"
def image = images_ls_output.tokenize().reverse()
println "${image}"
}
}
Это работает:
parameters {
extendedChoice(
bindings: '',
defaultValue: 'build',
description: '',
groovyClasspath: '',
groovyScript: '''
def app_filter = "api.tar"
def s3_path = "s3://wpl-artifactory/"
def aws_s3_ls_output = "aws s3 ls ${s3_path} --region us-east-2".execute() | [\'sort\', \'-k 1\'].execute() | "grep ${app_filter}".execute() | [\'awk\', \'{ print $NF }\'].execute()
def files = aws_s3_ls_output.text.tokenize().reverse()
return files
''',
multiSelectDelimiter: ',',
name: 'BUILD_VERSION',
quoteValue: false,
saveJSONParameterToFile: false,
type: 'PT_SINGLE_SELECT',
visibleItemCount: 5
)
}
Это не работает:
parameters {
extendedChoice(
bindings: '',
defaultValue: 'build',
description: '',
groovyClasspath: '',
groovyScript: '''
def images_ls_output = sh(script: "aws ec2 describe-images --query Images[*].[Name] --owner 11111111 --region us-east-2 --output=text" returnStdout: true).trim()
def image = images_ls_output.tokenize().reverse()
return image
''',
multiSelectDelimiter: ',',
name: 'USE_EXISTING_IMAGE',
quoteValue: false,
saveJSONParameterToFile: false,
type: 'PT_SINGLE_SELECT',
visibleItemCount: 5
)
}
В чем может быть причина?
"работает" = в первом случае выводит на экран значения масива
"работает" = во втором случае выводит в параметре список имейджей для выбора
"не работает" = во третьем случае НЕ выводит в параметре список имейджей для выбора