【发布时间】:2011-06-07 11:58:40
【问题描述】:
当定期构建失败时禁用它的首选方法是什么?快速搜索显示有一个先决条件构建步骤插件,但构建失败,我需要完全禁用构建,直到手动干预。
谢谢。
【问题讨论】:
当定期构建失败时禁用它的首选方法是什么?快速搜索显示有一个先决条件构建步骤插件,但构建失败,我需要完全禁用构建,直到手动干预。
谢谢。
【问题讨论】:
好的,我想我设法找到了解决方案。
解决办法是安装Groovy Postbuild Plugin,它在Jenkins JVM下运行,并公开暴露Jenkins实例。因此可以直接在项目配置中以编程方式禁用当前构建:
if (manager.build.result.isWorseThan(hudson.model.Result.SUCCESS)) {
manager.build.project.disabled = true
}
【讨论】:
项目状态页面上有一个“禁用项目”按钮。我通过 HTTP POST 消息模拟按钮单击,数据“Submit=\"Disable 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。
【讨论】: