首先是一些背景:
目前我有一个Jenkins作业设置来运行perl脚本,然后在它运行的任何机器上构建源代码。
根据我对Jenkins行为的观察,如果我从UI中止一个正在运行的Jenkins作业,我的perl脚本的所有相关线程(单个或并行)都会在相应的从属机器上被杀死。
现在我想要复制那种行为,即在我的构建步骤中中止Jenkins作业,我的脚本会产生一些错误。不幸的是,我无法轻松修改或更新正在启动的perl脚本(我不是所有者)所以我必须找到一个解决方案,如果可能的话,需要对perl脚本本身进行最少的修改。
我需要中止它的原因是因为我们不希望在产生错误的区域/存储/位置之后构建任何下游依赖项。
我可以自动执行此类行为吗?也许通过扫描perl脚本的日志来寻找错误?或类似的东西?
任何线索都会非常感激。
如果需要更多信息/澄清,请告诉我。
感谢。
编辑:
我发现了一个有趣的解决方案,实际上中止了这项工作。通过运行以下命令:
curl --request POST -u <username>:<password> "%JENKINS_URL%/job/%JOB_NAME%/lastBuild/stop"
当然,只要在当前正在编译的区域中发现任何错误,我现在必须想办法启动此命令。
我觉得我已经走了一半。
答案 0 :(得分:2)