Jenkins即使命令失败,如何将命令输出打印到文件?

时间:2015-05-17 02:51:01

标签: java ios xcode bash jenkins

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

让我说我有一个像xcodebuild这样的命令,这会产生90MB的日志记录。我已经在我的jenkins构建脚本上完成了这个:

xcodebuild abc > my_output.txt

但是,如果构建失败,似乎my_output.txt实际上不存在。这与普通的bash似乎有效。嗯...

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

如果jenkins任务失败,我只希望能够将日志文件的最后20行邮寄给自己。但由于文件未创建,因此日志将永远消失

1 个答案:

答案 0 :(得分:0)

我建议使用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执行步骤中添加与此类似的代码,你很高兴。