使用jenkins/sh将HTML字符串写入文件
我的管道中有一个包含HTML文件字符串(基本上是E2E测试结果)的变量:使用jenkins/sh将HTML字符串写入文件,jenkins,sh,Jenkins,Sh,我的管道中有一个包含HTML文件字符串(基本上是E2E测试结果)的变量: OUT = sh(script: "kubectl --kubeconfig ./kubeconfig-${scenario} logs \$(kubectl --kubeconfig ./kubeconfig-${scenario} get pods --selector=job-name=greyboxtest -o jsonpath='{.items[0].metadata.name}')", returnStdou
OUT = sh(script: "kubectl --kubeconfig ./kubeconfig-${scenario} logs \$(kubectl --kubeconfig ./kubeconfig-${scenario} get pods --selector=job-name=greyboxtest -o jsonpath='{.items[0].metadata.name}')", returnStdout:true)
HTML = OUT.substring(OUT.indexOf('HTMLSTART')+9, OUT.indexOf('HTMLEND')-1)
echo(HTML)
sh "echo ${HTML} >> ./reports/test.html"
但是,回显行给了我以下错误:语法错误:换行符意外
。我怀疑这是因为像
之类的特殊字符。因为testresult的JSON版本使用相同的方法工作
有没有其他方法或技巧可以将HTML字符串写入文件系统?这里有一个示例,可以说它有点Groovier
node() {
stage ('WriteHTMLOutput') {
OUT = sh(script: "kubectl --kubeconfig ./kubeconfig-${scenario} logs \$(kubectl --kubeconfig ./kubeconfig-${scenario} get pods --selector=job-name=greyboxtest -o jsonpath='{.items[0].metadata.name}')", returnStdout:true)
HTML = OUT.substring(OUT.indexOf('HTMLSTART')+9, OUT.indexOf('HTMLEND')-1)
sh "rm -f /tmp/test.html"
f = new File("/tmp/test.html")
f.append("${HTML}")
}
}
OUT2=OUT.replaceAll(~/[\r\n]/,“”)
。