Ваша проблема связана с типом вашей переменной myEnv
. Вы определяете это как карту, когда делаете def myEnv = [:]
.
Таким образом, он работает с withEnv
, что принимает карту в качестве параметра , но не работает с environment {...}
, принимает только операторы "ключ = значение" .
Решение зависит от того, как вы добавляете переменные среды, содержащиеся в myEnv
.
Самый простой способ - использовать директиву environment
, перечислив все ключи / значения, содержащиеся в вашей прежней переменной myEnv
:
pipeline{
agent none
environment {
test1 = 'test-1'
test2 = 'test-2'
}
stages{
stage('Fancy stuff'){
steps{
echo "${test1}"
}
}
stage('Fancy stuff2'){
steps{
echo "${test2}"
}
}
}
}
Но вы также делаете это в сценарии :
pipeline{
agent none
stages{
stage('Prepare my env') {
steps {
script {
def test = []
for (int i = 1; i < 3; ++i) {
test[i] = 'test-' + i.toString()
}
test1 = test[1]
test2 = test[2]
}
}
}
stage('Fancy stuff'){
steps{
echo "${test1}"
}
}
stage('Fancy stuff2'){
steps{
echo "${test2}"
}
}
}
}