В Jenkins1 у нас был скрипт для установки переменных среды, что-то вроде этого:
//...imports
instance = Jenkins.getInstance()
globalNodeProperties = instance.getGlobalNodeProperties()
envVarsNodePropertyList = globalNodeProperties.getAll(hudson.slaves.EnvironmentVariablesNodeProperty.class)
newEnvVarsNodeProperty = null
envVars = null
if ( envVarsNodePropertyList == null || envVarsNodePropertyList.size() == 0 ) {
newEnvVarsNodeProperty = new hudson.slaves.EnvironmentVariablesNodeProperty();
globalNodeProperties.add(newEnvVarsNodeProperty);
envVars = newEnvVarsNodeProperty.getEnvVars();
envVars.put(NEW_VAR, "toto");
} else {
for (property in envVarsNodePropertyList) {
envVars = property.getEnvVars();
envVars.put("EXISTING_VAR","tata");
}
}
instance.save()
Сегодня мы используем Jenkins2, с функцией jenkinsfile, и я хотел знать, как сделать то же самоев файл Дженкинса?
это будет работать, если да, есть ли лучший способ?:
def setEnvVar() {
script {
//all the script above
}
}
pipeline {
agent any
tools {
maven 'Maven3_6'
jdk 'Jdk8'
}
stages {
stage ('Initialize') {
steps {
setEnvVar()
}
}
...
EDIT : допустим, у меня есть существующая переменная env, LAST_DEPLOY = "0.1", используя:
environment {
LAST_DEPLOY = "0.2"
}
только изменит эту переменную длятекущее выполнение и каким-то образом в конце оно будет сброшено до «0.1», я хочу, чтобы модификация продолжалась для следующих сборок.