我正在使用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"在控制台上,但它总是进入其他部分。比较有什么问题?
答案 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并检查。