Трубопровод Дженкинс, когда состояние - PullRequest
0 голосов
/ 24 сентября 2018

Я использую Jenkins Pipeline в качестве источника в Jenkinsfile

Я не использую многоотраслевой конвейер, поэтому я не могу использовать стандартное условие когда для выбора ветви.Хостом для моего репозитория git является gitlab, и я использую плагин gitlab, поэтому я вижу, что установлена ​​эта переменная окружения:

Name: gitlabSourceBranch -> Value continuous_integration

Однако, когда я пытаюсь использовать этоПеременная окружения на этапе, когда условие, я просто получаю:

Stage "build_sd_card" skipped due to when conditional

Когда я использую условие:

        when {
          environment name: 'gitlabSourceBranch ', value: 'continuous_integration'
        }

Я использовал декларативный синтаксис jenkinsгенератор директив для его генерации.

Я распечатал окружение с помощью этой функции (вызываемой на предыдущем этапе):

@NonCPS
def printParams() {
  env.getEnvironment().each { name, value -> println "Name: $name -> Value $value" }
}

Почему не работает это when условие?

1 Ответ

0 голосов
/ 20 августа 2019

Вам необходимо сравнить значение с входным значением.

Как вы знаете, значения окружения установлены (или могут быть установлены) и доступны в env.префикс.Вы должны использовать что-то вроде:

  when {
    equals expected: 'continuous_integration', actual: env.gitlabSourceBranch
  }

или

when {
     expression {
         env.gitlabSourceBranch == 'continuous_integration'
     } 
}

Хотя я предпочитаю первый

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...