Using environment variables
Environment variables can be set globally, like the example below, or per stage. As you might expect, setting environment variables per stage means they will only apply to the stage in which they’re defined.
Jenkinsfile (Declarative Pipeline)
pipeline {
agent any
environment {
DISABLE_AUTH = 'true'
DB_ENGINE = 'sqlite'
}
stages {
stage('Build') {
steps {
sh 'printenv'
}
}
}
}
Jenkinsfile (Scripted Pipeline)
node {
withEnv(['DISABLE_AUTH=true',
'DB_ENGINE=sqlite']) {
stage('Build') {
sh 'printenv'
}
}
}
This approach to defining environment variables from within the Jenkinsfile
can be very useful for instructing scripts, such as a Makefile
, to configure the build or tests differently to run them inside of Jenkins.
Another common use for environment variables is to set or override “dummy” credentials in build or test scripts. Because it’s (obviously) a bad idea to put credentials directly into a Jenkinsfile
, Jenkins Pipeline allows users to quickly and safely access pre-defined credentials in the Jenkinsfile
without ever needing to know their values.
Credentials in the Environment
See Handling credentials in the User Handbook for more information.