我正在使用一个groovy脚本来计算我的构建持续时间并将指标发布到Hosted Graphite,从命令行将产生以下curl,并达到预期效果:
echo {someMetricHere} | nc carbon.hostedgraphite.com 2003
然而,在我的groovy脚本中,生成度量的最后一步是运行以下命令:
"echo "+ metric +" | nc carbon.hostedgraphite.com 2003".execute()
它的回归:
捕获:java.io.IOException:无法运行程序“|“:error=20,Not a directory java.io.IOException:无法运行程序“|“:error=20,Not a directory at hudson8814765985646265134.run(hudson8814765985646265134.groovy:27)原因:java.io.IOException:错误=20,不是目录.还有一个1口译
我想指挥官不明白“|“命令的一部分,有什么建议我可以修复这个脚本运行预期的bash?我认为可以在工作区中创建一个.sh文件,但不确定如何创建。
Pastebin对于那些想要看到完整脚本的人:https://pastebin.com/izaXVucF
Cheers:)
5条答案
按热度按时间5n0oy7gb1#
要使用管道
|
,请尝试以下代码:输出:
6g8kf2rb2#
我觉得你做的连接有问题。
这段代码应该工作:
r7knjye23#
一个更简单的方法是使用Jenkins Job DSL。它具有一个
shell
命令,可以从给定的step
中发出。举例来说:你可以在这里找到参考。
j1dl9f464#
除了来自daggett的伟大(尽管复杂)的公认答案之外,这里是简单的(记住并在Jenkins Script UI中输入)方法:
脚本管道就像
sh 'env | grep JAVA_OPTS'
一样简单kmb7vmvb5#
如果必须向groovy脚本传递一个变量,可以使用
${variableName}
。双引号并不像你想象的那样被解释,每个编译器都以一种奇怪的方式对待它。在你的情况下,下面的一行应该有助于做你想做的事情: