比较管道插件jenkins中的字符串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了比较管道插件jenkins中的字符串相关的知识,希望对你有一定的参考价值。
我正在使用jenkins的管道插件构建流程管道。我有一些我必须触发的工作。为了决定我必须使用哪个下一步,我在文件中写了一个返回码。在此之后,我读了这个文件并做出决定。但比较不起作用。
def returnCode = readFile 'return'
//IP in Datenbank
if ( returnCode == "1" ){
}
else{
}
当我尝试echo returnCode
时,脚本在控制台上打印“1”,但它总是进入else部分。比较有什么问题?
答案
使用“trim()”提到的评论之一。这很可能是问题所在。
每当我在调试时打印字符串时,我总是这样打印它们:
println "label[${variable}]"
如果在输出中看到一行上的值和下一行上的“]”(或者只是附加空格),则表明您必须“修剪()”该值。
另一答案
PLS检查这个
node ('master'){
def returnCode = 2
sh 'echo returnCode'
//IP in Datenbank
if ( returnCode == "1" ){
sh 'echo 1111'
}
else{
sh 'echo not 11111 !!!'
}
}
尝试它,它的工作原理,而不是用文件中的读取替换静态vac并检查。
另一答案
PLS检查这个
node ('master'){
def returnCode = 1
println (returnCode)
if( returnCode == 1 ) {
sh 'echo 1 !!'
}
else{
sh 'echo not 1 !!!'
}
}
另一答案
我面临同样的问题。问题在于新线或空格字符。例如:
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
以上是关于比较管道插件jenkins中的字符串的主要内容,如果未能解决你的问题,请参考以下文章
如何使用管道代码覆盖默认的 Jenkins Git 插件检出?
用于 Jenkins 管道的 Docker 插件 - uid 1005 不存在用户
Jenkins如何使用AnchorChain插件向Jenkins管道添加外部URL