Jenkins Pipeline accessing environment variables Jenkins Pipeline accessing environment variables jenkins jenkins

Jenkins Pipeline accessing environment variables


All environment variables are accessible using env, e.g. ${env.JOB_NAME}.


Okay this really vexed me for a while today. Ultimately, I was being done in by a couple of things:

  • Single-quoted strings in Groovy mean "don't evaluate variables," just like it does in bash
  • Using $ interpolation is completely unnecessary if you're just referencing the variable, so you can just do env.JOB_NAME.

This SO question proved to be the one that helped me crack the code: Jenkins Workflow Checkout Accessing BRANCH_NAME and GIT_COMMIT


Indeed just use ${env.JOB_NAME} to access a known variable.

However if you need to access environment variable where name is given by another variable (dynamic access), just use env["your-env-variable"].

I had the problem where I configured 3 environment variables (in Jenkins -> Administer -> Configure System -> Environment variables), let's name them ENV_VAR_1, ENV_VAR_2, ENV_VAR_3.Now I want to dynamically access them, I can do as such :

def envVarName = "ENV_VAR_" + count  // Suppose count is initialized in a loop somewhere above...def value = env[envVarName]  // Will be resolved to env["ENV_VAR_1"] depending on count value

My environment variables in Jenkins configuration look like this :

enter image description here