You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Travis多行脚本中使用travis_wait解决无输出超时问题

问题根因

你之前的两种写法出错的原因分别是:

  • 第一种写法:travis_wait 必须跟随待执行的命令作为参数才能生效,单独写travis_wait 40没有绑定实际任务,会直接退出,后续的mvn命令没有被包裹,还是会触发无输出被杀的规则
  • 第二种写法:shell解析命令时会把重定向符号>作用于整个travis_wait进程,导致travis_wait本身用于保活的定时输出也被写入到文件中,Travis控制台依旧收不到任何日志,还是会触发超时销毁,同时也可能因为参数解析异常导致命令提前退出。

正确写法

你需要用bash -c把带重定向的mvn命令整合成独立参数传递给travis_wait,示例如下:

script:
  - |
    if [[ -z "$TRAVIS_TAG" ]]; then
      travis_wait 40 bash -c 'mvn clean install > output.txt'
    fi

说明

  • travis_wait会每隔一段时间自动输出简短的等待日志到Travis控制台,既不会产生过多冗余内容,也能避免触发10分钟无输出强制杀进程的规则
  • mvn的所有构建输出会完整重定向到output.txt,完全满足你规避过长输出、不触碰4MB输出上限的需求
  • 建议travis_wait后的时长参数略大于本地运行的最长耗时,避免任务未完成就被提前终止
  • 如果构建失败需要排查问题,可以在script块末尾按需添加cat output.txt输出日志内容,不需要的话保留现有逻辑即可

内容的提问来源于stack exchange,提问作者AndrasCsanyi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 05:15:02