【问题标题】:Jenkins how to print output of command to file even if command fails?即使命令失败,Jenkins如何将命令输出打印到文件中?
【发布时间】:2015-07-28 18:10:50
【问题描述】:

根据我的阅读,Jenkins 日志记录似乎是在 JVM 中完成的,它使用 Java 的 log util 类。这是一个问题,因为运行的命令之一记录了近 90MB 的内存。从技术上讲,我可以增加 JVM 的大小,但我无法让它工作,而且我更愿意将这个长日志写入文件。

假设我有一个类似xcodebuild 的命令,这会生成 90MB 的日志记录。我在我的 jenkins 构建脚本上做了这个:

xcodebuild abc > my_output.txt

但是,如果构建失败,my_output.txt 似乎实际上并不存在。这与常规 bash 的工作方式相反。嗯……

是否有任何巧妙的解决方法,以便即使命令失败(并记录一些内容)仍然会创建文件?

如果 jenkins 任务失败,我只想能够将日志文件的最后 20 行邮寄给自己。但是因为没有创建文件,所以日志永远消失了

【问题讨论】:

    标签: java ios xcode bash jenkins


    【解决方案1】:

    我建议使用xctool(xcodebuild 的包装器),它提供了指定报告器的选项。

    # Test the application on iPhone Simulator
    xctool  -workspace MyProject.xcworkspace \
            -scheme "MyProject" \
            -reporter plain:tmpoutputs/log.txt \
            -reporter junit:tmpoutputs/junit.xml \
            clean test \
            -test-sdk iphonesimulator8.3 \
            -freshInstall
    

    如果您要运行测试,这将输出一个日志文件到“tmp outputs/log.txt”和一个可选的用于测试输出的 junit 日志文件。

    将与此类似的代码放入 Jenkins 的 shell 执行步骤中,您就可以开始了。

    【讨论】:

      猜你喜欢
      • 2014-05-15
      • 2019-02-16
      • 1970-01-01
      • 1970-01-01
      • 2019-06-02
      • 1970-01-01
      • 2013-11-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多