We have a Jenkinsfile with parameters declared as follows:
def params = [string(name: 'ENVIRONMENT', value: environment),
string(name: 'VERSION', value: version),
string(name: 'REGION', value: region)]
I'd like to echo these, for example
DEPLOYING: ENVIRONMENT=STAGING, VERSION=1.3.0, REGION=EU
However calling echo "$params"
prints:
[@string(name=ENVIRONMENT,value=STAGING), @string(name=VERSION,value=1.3.0), @string(name=REGION,value=EU)]
I tried iterating the array - e.g. :
params.each { echo it }
throws UnsupportedOperationException: no known implementation of class java.lang.String is using symbol ‘string’
params.each { echo it.name }
throws RejectedAccessException: No such field found: field org.jenkinsci.plugins.structs.describable.UninstantiatedDescribable name
How can I print the params
array nicely?
EDIT - from Matt Schuchard's response:
def params = [string(name: 'ENVIRONMENT', value: "STAGING"),
string(name: 'VERSION', value: "1.3.0"),
string(name: 'REGION', value: "EU")]
print "$params"
params.each() { param, value ->
print "Parameter: ${param}, Value: ${value}"
}
returns (i.e. Value is all null):
[@string(name=ENVIRONMENT,value=STAGING), @string(name=VERSION,value=1.3.0), @string(name=REGION,value=EU)]
Parameter: @string(name=ENVIRONMENT,value=STAGING), Value: null
Parameter: @string(name=VERSION,value=1.3.0), Value: null
Parameter: @string(name=REGION,value=EU), Value: null