我的jenkinspipeline中有一个变量包含一个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}')", returnStdout:true)
HTML = OUT.substring(OUT.indexOf('HTMLSTART')+9, OUT.indexOf('HTMLEND')-1)
echo(HTML)
sh "echo ${HTML} >> ./reports/test.html"但是,回声行给出了以下错误:Syntax error: newline unexpected。我怀疑这是因为像<,>或类似的特殊字符。因为JSON版本的测试结果使用相同的方法。
是否有其他方法或技巧可以将HTML字符串写入文件系统?
发布于 2019-09-17 22:42:28
可以这么说,这是一个更时髦的例子。
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}")
}
}https://stackoverflow.com/questions/57976539
复制相似问题