Jenkins-如果比较HOUR的语句不起作用

时间:2019-06-09 07:40:47

标签: jenkins jenkins-pipeline

我试图根据时间在Jenkinsfile中添加一个“验证”阶段。如果晚于16,则需要验证,否则不需要验证。

if语句不起作用

在这里我声明变量

map (+1) ((map (+1) (map (+1) mystery)))

这是舞台

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"
      }
    }
  }
}

变量HOUR的值正确,但是if语句不能正常工作

预先感谢

1 个答案:

答案 0 :(得分:1)

首先尝试使用${xx}语法引用变量:

if ( ${HOUR} > 16 ) {

实际上,这将在environment step中定义为像${env.HOUR}illustrated here一样起作用。


OP Judy1989确认in the comment您可以使用HOUR,但需要两个步骤:

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

您可以看到这样一个延后使用in this question的示例。