如何避免在travis_wait之后显示日志?

时间:2017-10-08 21:20:35

标签: timeout output travis-ci tail

travis_wait [minutes]允许在没有输出到Travis CI上的指定参数后增加超时。但是,结合超出4MB限制的输出,我通过添加&> /tmp/somefile || tail -n 10000 /tmp/somefile来克服,在失败后显示完整的日志,例如

$ travis_wait 30 bash -c 'mvn install -DskipTests=true -Dmaven.javadoc.skip=true --batch-mode --show-version &> /tmp/tomee-build.log || tail -n 10000 /tmp/tomee-build.log'

Still running (20 of 30): bash -c mvn install -DskipTests=true -Dmaven.javadoc.skip=true --batch-mode --show-version &> /tmp/tomee-build.log || tail -n 10000 /tmp/tomee-build.log

The command bash -c mvn install -DskipTests=true -Dmaven.javadoc.skip=true --batch-mode --show-version &> /tmp/tomee-build.log || tail -n 10000 /tmp/tomee-build.log exited with 1.

Log:

Picked up _JAVA_OPTIONS: -Xmx2048m -Xms512m

[INFO] Scanning for projects...

这显然是构建日志的开始,而不是tail打印的最后10000行(有关详细信息,请参阅https://travis-ci.org/krichter722/tomee/jobs/398814959)。

使用python script.py &> /tmp/build.log || (tail -n 100 /tmp/build.log && exit 1)进行最小化设置(其中script.py在新行中打印0到1000000之间的数字,然后使用代码1退出以模拟构建失败),这可以正常工作(请参阅{{3详情)。

2 个答案:

答案 0 :(得分:2)

我可以在不理解此处的travis_wait行为的情况下建议的一件事是使用调整您自己的替换travis_wait来控制在什么情况下输出如何处理。我正在使用eliminate the dots from the log

除此之外,您可以深入了解travis_wait implementation

答案 1 :(得分:1)

问题在https://github.com/travis-ci/travis-ci/issues/8526进行了讨论(原始问题略有不同)。事实证明,travis_wait无法跟踪由传递给travis_wait的进程产生的子进程。这可能需要固定在Travis一侧。有一条待定,有人可能会回复。