比较管道插件jenkins中的字符串

时间:2017-01-18 11:45:06

标签: jenkins groovy jenkins-pipeline

我正在使用jenkins的管道插件构建流程管道。我有一些我必须触发的工作。为了决定我必须使用哪个下一步,我在文件中写了一个返回码。在此之后,我读了这个文件并做出决定。但比较不起作用。

RSS = {"bbc": "http://feeds.bbci.co.uk/news/rss.xml",
       "iol": "http://rss.iol.io/iol/news",
       "fox": "http://feeds.foxnews.com/foxnews/latest",
       "cnn": "http://rss.cnn.com/rss/edition.rss"}

当我尝试def returnCode = readFile 'return' //IP in Datenbank if ( returnCode == "1" ){ } else{ } 脚本打印" 1"在控制台上,但它总是进入其他部分。比较有什么问题?

4 个答案:

答案 0 :(得分:2)

使用“trim()”提到的评论之一。这很可能就是问题所在。

每当我在调试时打印字符串时,我总是这样打印它们:

println "label[${variable}]"

如果在输出中看到一行上的值和下一行上的“]”(或者只是附加空格),则表明您必须“修剪()”该值。

答案 1 :(得分:0)

PLS检查这个

node ('master'){
    def returnCode = 1
    println (returnCode)

    if( returnCode == 1 ) {
        sh 'echo 1 !!'
    }
    else{
        sh 'echo not 1 !!!'
    }
}

答案 2 :(得分:0)

我面临同样的问题。问题在于新线或空格字符。例如:

status = getstat()
if (status == "started"){
  println("in if")
} else {
  println("in else")
}

def getstat() {
  def out = new StringBuilder(), err = new StringBuilder()
    status = 'echo started'.execute()
  status.consumeProcessOutput(out, err)
  println "out> $out err> $err"
  println(out)
  return out
}

o / p是:

out> started
 err> 
started

in else

现在只需将返回值更改为

return out.replaceAll("[\n\r]", "");

现在o / p是:

out> started
 err> 
started

in if

答案 3 :(得分:-1)

PLS检查这个

node ('master'){
    def returnCode = 2
    sh 'echo returnCode'

    //IP in Datenbank
    if ( returnCode == "1" ){
        sh 'echo 1111'
    }
    else{
        sh 'echo not 11111 !!!'
    }
}

尝试它,它的工作原理,而不是用你从文件中读取来替换静态vac并检查。