Hudson / jenkins:禁用失败的构建

时间:2011-06-07 11:58:41

标签: hudson jenkins

在失败时禁用定期构建的首选方法是什么?快速搜索显示有一个Prerequisite构建步骤插件,但是构建失败,我需要完全禁用构建,直到手动干预。

感谢。

2 个答案:

答案 0 :(得分:15)

好的,我想我找到了解决方案。

  • 重试失败构建插件无法正常工作,因为它无法覆盖默认项目计划,因此失败的项目会一次又一次地构建。
  • Naginator插件无效,因为延迟不可配置。
  • 先决条件构建步骤插件不适用。

解决方案是安装Groovy Postbuild Plugin,它在Jenkins JVM下运行并公开公开Jenkins实例。因此,可以直接在Project配置中以编程方式禁用当前构建:

if (manager.build.result.isWorseThan(hudson.model.Result.SUCCESS)) {
  manager.build.project.disabled = true
}

答案 1 :(得分:3)

项目状态页面上有一个“禁用项目”按钮。我通过HTTP POST消息模拟按钮点击,数据“Submit = \”禁用Project \“”这样

wget  --post-data  "Submit=\"Disable Project\"" ${JOB_URL}disable

直接从运行构建(项目)的bash脚本。整个代码看起来像这样

set +e
#  Run test/build
#  ....
if [ $? -ne 0 ];
then
  wget  --post-data  "Submit=\"Disable Project\"" ${JOB_URL}disable
#  Or you can use following to disable one job from another
#  wget  --post-data  "Submit=\"Disable Project\"" http://<Server>/job/$JOB_NAME/disable
  exit -1
fi

这是一个相当古老的问题,所以我猜Jenkins GUI中没有禁用/启用按钮。如果Jenkins受密码保护,您需要首先登录wget,将cookie存储在某个文件中,然后在第二个文件中添加cookie。