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 退出以模拟构建失败)(有关详细信息,请参阅 https://travis-ci.org/krichter722/travis-log-exceeded/builds/400489069)。
了解这里的travis_wait
行为的情况下,我可以建议的一件事是使用调整您自己的替换travis_wait
,您可以在其中控制在什么情况下如何处理输出。我正在使用一个来消除日志中的点。
除此之外,您还可以深入研究travis_wait
实现
这个问题在 https://github.com/travis-ci/travis-ci/issues/8526 讨论(原始问题略有不同)。事实证明,travis_wait
无法跟踪传递给travis_wait
的进程生成的子进程。这可能需要在特拉维斯方面解决。有一条评论待处理,有人可能会回复。