Как перезаписать глобальную переменную в jenkins groovy

#jenkins #groovy #jenkins-groovy

#дженкинс #groovy #дженкинс-заводной

Вопрос:

Я работал над сценарием Дженкинса groovy. Я определил одну глобальную переменную в начале скрипта, которая используется во всем groovy. Пользователи, использующие этот groovy, могут изменять значение глобальной переменной в соответствии со своими требованиями.

Теперь проблема в том, что я хочу установить значение по умолчанию для глобальной переменной на случай, если пользователь оставил глобальную переменную пустой, как я могу добиться этого сценария в Groovy?

Заранее благодарю. ниже показано, как выглядит мой groovy

 String var1 = " "
String var2 = " "

pipeline {
  agent any
  stages {

    stage('Stage 1') {
      steps {
        script {
          if(var1 == " ") {
              var1 = <default value>
          }
        }
      }
    }

    stage('Stage 2') {
      steps {
        script {
          docker login <here i want to use default var1>
        }
      }
    }

  }
}
 

Ответ №1:

 if(!MY_GLOBAL_VAR){
    MY_GLOBAL_VAR = <default value>
}
 

или более явный

 if(MY_GLOBAL_VAR == null){
    MY_GLOBAL_VAR = <default value>
}
 

Комментарии:

1. Спасибо за комментарий, смелм, но ниже показано, как выглядит мой groovy, он изменил значение только на этом конкретном этапе, но я хочу, чтобы моя переменная была перезаписана для всего скрипта Строка var1 = » » Строка var2 = » » конвейер { агент любых этапов { этап (‘Этап 1’) {шаги { script { if(var1 == » «) { var1 = <значение по умолчанию> } } } } этап (‘Этап 2’) { шаги { script { docker login <здесь я хочу использовать значение по умолчанию var1> } } } } }

2. Не могли бы вы попробовать опустить объявление типа (оставить outthe String ), это сделало бы его глобальным

Ответ №2:

 if(!MY_GLOBAL_VAR){
    MY_GLOBAL_VAR = <default value>
}
 

или более явный

 if(MY_GLOBAL_VAR){
    MY_GLOBAL_VAR = <default value>
}
 

Если вы запускаете это в декларативном конвейере, вам нужно окружить его script{} блоком.