Reputation: 31520
I have env vars defined in my environment directive at the top of the pipeline:
environment {
var1 = 'sdfsdfdsf'
var2 = 'sssssss'
}
But there are some that I need to dynamically set or override in the stages. But if I use an environment{} directive in a stage the vars won't be accessible to other stages. Initially I thought I could define them all with default values in the top environment directive and overwrite them in the pipeline but this is the behavior I observed:
script {env.var1 = 'new value'}
How can I change the envs?
Upvotes: 2
Views: 7066
Reputation: 318
You can do it as follow:
you can access same var in other stages and change value in environment { env.var1 = 'value2' }
pipeline {
agent any
environment {
var1 = 'value'
}
stages {
stage('Initialize') {
steps {
script {
echo ("value : " + env.var1)
}
}
}
stage('build') {
environment {
var1 = 'value2'
}
steps {
script {
echo ("value : " + env.var1)
}
}
}
}
}
Upvotes: 4