25
votes

I would like to print all available properties (and their values) in env object inside Jenkinsfile.

When I do

print env

I get:

org.jenkinsci.plugins.workflow.cps.EnvActionImpl@112cebc2

So it looks like toString is not implemented there, how can I access properties that are in this object if I don't know their names?

3
Does println env.overriddenEnvironment shed more light on it? - tim_yates
It gives me null - Krzysztof Krasoń
Same with env.environment ? - tim_yates
yes, it gives null also - Krzysztof Krasoń
I've posted an answer for stackoverflow.com/questions/37083285/… which might be helpful. - luka5z

3 Answers

18
votes

Make sure you're not running the pipeline script in sandboxed mode and you should be able to use:

env.getEnvironment()

Note, if you're running in sandbox mode in a pipeline, you should approve the method at the script approval page: http://jenkins-host/scriptApproval/

6
votes

To retrieve all env properties using a Jenkinsfile written in either declarative or scripted DSL you can use:

sh 'env'                       

or

sh 'printenv'
2
votes

As said over here: https://stackoverflow.com/a/42138466/618253

The declarative pipeline way of doing things:

node {
   echo sh(returnStdout: true, script: 'env')
}