У меня есть существующий скрипт bash, который просто устанавливает около 100 переменных, например, пути, номера версий и т. д., которые мы предоставляем как часть первой части всех наших работ по сборке.
Я перемещаю некоторые из этих заданий сборки в конвейеры jenkins и пытаюсь выяснить, есть ли способ получения переменных из этого файла на этапе среды jenkins, чтобы его можно было использовать на всех последующих этапах конвейера сборки.
Я чувствую, что что-то упустил, потому что я не очень хорошо знаком с Groovy.
я думаю, что, возможно, с помощью System.getenv, но для этого нужно, чтобы они были установлены, и я думаю, что поиск его в блоке сценария sh не сохраняется.
Ниже приведено то, с чем я работаю, но не работает (хотя и дает концептуальную идею).
любой совет был бы оценен!
#!/usr/bin/env groovy
pipeline {
agent {label "${params.VM_to_use}"}
environment {
TARGET_VM = "${params.VM_to_use}"
//I'd like to be able to access vars globally or if better way I'm up for it.
}
stages {
stage ('Get vars in preperation for subsequent build steps...'){
steps {
sh '''
source /net/machine1/globalvars/functions/my_global_vars.sh
# product_123_version number in that file.
'''
script {
currentBuild.displayName = " ${env.product_123_version} - ${TARGET_VM}"
currentBuild.displayName = System.getenv("TESTVAR")
}
}
}
stage ('Build Step 2...'){
steps {
sh '''
# pass version to script...
/build_step_2.sh ${env.product_123_version}
'''
}
}
}
}