8

When writing a script that is run by Jenkins Groovy Plugin as a build step (Execute System Groovy Script) one can specify 'variable bindings'. The helpline says: Define varibale bingings (in the properties file format). Spefified variables can be addressed from the script. [sic] How do I access those variables from the script? They are not set as environment variables for the build, neither are they present among System properties.

2 Answers 2

11

this.getBinding().getVariables()

or simply binding.variables

Sign up to request clarification or add additional context in comments.

3 Comments

Do you know how to access the environment variables in the script?
@Newbie, binding.varaibles is a java.util.Map object (keyed by variable names).
If you have a binding like foo=bar in your variable bindings, you can get bar by running binding.variables.get('foo').
1

I wasn't able to use binding.variables directly, I only got listener, build, launcher and out from binding.variables.

Instead I was able to use build.environment(listener) to retrieve the environment variables as suggested in the responses to this question: Access to build environment variables from a groovy script in a Jenkins build step ( Windows)

def config = new HashMap() config.putAll(binding.variables) def logger = config['out'] def envvars = new HashMap() envvars.putAll(build.getEnvironment(listener)) def myvar= envvars['myvar'] 

This might have been different for me since I am only looking for system-wide environmental variables:

(checked) Prepare an environment for the run \ Keep Jenkins Environment Variables \ Keep Jenkins Build Variables

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.