如何通过Shell脚本终止Jenkins构建?

9

我看到在Jenkins上执行shell脚本时,返回一个非零整数会使结果标记为失败。

我该如何将其更改为已中止?是否有插件可以实现这一点?我能否避免使用GroovyScript?


你想在什么时候将其更改为“中止”?当Shell脚本失败或出现奇怪的行为时。这是一个棘手的任务,如果没有Groovy的话很难实现。 - Larry Cai
是啊,我很想使用Groovy,但这个shell命令必须在远程SSH上执行。既然SSH将接收退出输出并解释它,除非有一个远程Groovy解释器... - Lucky
请澄清您的请求(何时终止),并在内部提供示例Bash脚本(SSH远程执行)。 Groovy脚本主要是在postbuildtask插件中完成的。 - Larry Cai
1个回答

6

可以在shell构建步骤中使用Rest API触发构建的Abort,而不是返回非零整数并导致构建失败。

使用curl的示例:

curl -XPOST $BUILD_URL/stop

使用wget的示例:
wget --post-data="" $BUILD_URL/stop

1
我最近不得不实现这个功能,@clipitar提供的解决方案是正确的选择。重要的一点是:如果启用了CSRF(这是Jenkins安装的默认设置),请确保阅读此处“CSRF Protection”部分https://wiki.jenkins.io/display/JENKINS/Remote+access+API以获取有关获取碎片的详细信息。这将在实际的“/stop”POST请求中与身份验证标头一起使用。 - Mihai Albert

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接