Дженкинс - если утверждение сравнения ЧАС не работает - PullRequest
3 голосов
/ 09 июня 2019

Я пытаюсь добавить этап проверки в Jenkinsfile, основываясь на времени.Если это позже 16, проверка требуется, в противном случае нет.

оператор if не работает

здесь я объявляю переменную

HOUR=sh(returnStdout: true, script: 'date +"%H"').trim().toInteger() 

и здесьэтап

stage('validation') {
  steps {
    script {
      if ( HOUR > 16 ) {
        echo "Validation is required, time now is $HOUR"
      }
      else {
        echo "No validation required, time now is $HOUR"
      }
    }
  }
}

и здесь вывод

Validation is required, time now is 9

значение переменной HOUR правильное, но оператор if не работает правильно

заранее спасибо

1 Ответ

1 голос
/ 09 июня 2019

Попробуйте сначала обратиться к вашей переменной с синтаксисом ${xx}:

if ( ${HOUR} > 16 ) {

На самом деле, это должно быть определено на шаге среды , который будет работать, как ${env.HOUR}, как показано здесь .


OP Judy1989 подтверждает в комментарии , что вы можете использовать HOUR, нов два этапа:

HOUR=sh(returnStdout: true, script: 'date +"%H"').trim() 
...
if ( HOUR.toInteger() > 16 )

Вы можете увидеть пример такого отложенного использования в этом вопросе .

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