【问题标题】:Hudson/jenkins: disable the failed buildHudson/jenkins:禁用失败的构建
【发布时间】:2011-06-07 11:58:40
【问题描述】:

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

谢谢。

【问题讨论】:

    标签: hudson jenkins


    【解决方案1】:

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

    • Retry Failed Builds 插件不起作用,因为它无法覆盖默认项目计划,因此失败的项目一次又一次地构建。
    • Naginator 插件不起作用,因为延迟不可配置。
    • 先决条件构建步骤插件不适合。

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

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

    【讨论】:

    • @Vladimir Sinenko 我试过这个。groovy postbuild 脚本中没有任何东西被执行。甚至 println。可能是什么问题
    【解决方案2】:

    项目状态页面上有一个“禁用项目”按钮。我通过 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。

    【讨论】:

      猜你喜欢
      • 2012-08-21
      • 1970-01-01
      • 2010-12-09
      • 2015-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-19
      • 1970-01-01
      相关资源
      最近更新 更多