【问题标题】:How can I get Hudson to continue a build after a windows command fails?windows 命令失败后,如何让 Hudson 继续构建?
【发布时间】:2011-03-02 23:45:52
【问题描述】:

我有一个来自第 3 方工具的构建脚本。它可以正常工作,但最后会抛出一个我需要忽略的无用异常。

但哈德森并没有忽视它。当此脚本以错误代码退出时,它会停止我的构建!= 0。它会这样做,即使最后一行是“退出 0”。

Hudson 构建配置中没有选项来指定如何处理特定构建步骤的失败。

有没有隐藏的选项告诉哈德森继续前进? Hudson 的 config.xml 的一般参考在哪里?

【问题讨论】:

    标签: hudson


    【解决方案1】:

    在 Unix 系统上,解决此问题的一种方法是在 bash 的子 shell 中运行它,并使用“exit 0”作为最终命令。例如:

    bash -c "false; 退出 0"

    这将运行“false”,但返回值为 0。

    这有点hacky,但确实有效。我不知道windows是否存在类似的解决方案。

    【讨论】:

      【解决方案2】:

      Hudson 的一个关键特性是一切都可以通过网络界面进行配置。所以查看 config.xml 不是正确的方法。

      在 Hudson 中,您的 windows 命令可以通过批处理文件启动。我建议研究使该批处理文件返回零错误代码,无论您的第三方工具做什么。第一行将调用您的工具,第二行将是 'exit 0'

      【讨论】:

      • 来自问题:“它会做什么,即使最后一行是'exit 0'”但是你是对的,没有一个选项可以告诉哈德森忽略特定的错误构建步骤。并感谢有关这一切的提示都在网络上。我不会再浪费时间寻找隐藏的功能了。
      【解决方案3】:

      似乎必须将有问题的脚本包装在自己的 bat 中:

      copy con wrapper.bat
      >myErrorMakingScript.bat
      >exit /b 0
      

      然后从 Hudson 启动 wrapper.bat。

      【讨论】:

        【解决方案4】:

        使用加入触发器插件 对我来说很好。 勾选“即使某些下游项目不稳定也触发”选项

        【讨论】:

          猜你喜欢
          • 2020-03-29
          • 2011-02-09
          • 1970-01-01
          • 2012-06-05
          • 2013-06-04
          • 1970-01-01
          • 1970-01-01
          • 2018-02-18
          相关资源
          最近更新 更多