如何用多行脚本让travis等待?



我需要修改travis。Yaml文件,其中命令运行时间较长,超过10分钟。这个脚本的特殊之处在于,它是一个maven命令,输出被重定向到一个文件,整个命令运行超过30分钟。

由于输出被重定向,因此没有输出,并且Travis在10分钟后杀死了该进程。Travis doc建议使用travis_wait,但我没有找到任何例子或东西如何使用它与多行脚本。

下面的例子的结果是,整个脚本部分在几秒钟内完成,这显然是不好的。mvn命令只在我的本地机器上运行40分钟,我希望它运行类似的东西。

有两个原因:

  • 不处理maven的长输出
  • 避免达到Travis 4MB输出限制

我的脚本是这样的,mvn clean install部分应该等待。

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

到目前为止,我所尝试的如下,没有积极的结果。我不得不提一下,我在处理yaml文件方面还是个新手。

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

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

travis_wait不能帮助您的命令做任何输出当您管道输出到一个文件。Travis仍然看不到命令的输出。

假设命令本身产生足够的输出(应该如此),那么简单的修复方法是

mvn clean install | tee output.txt

写入output.txt,并将输出到stdout,以便Travis看到它。

相关内容

  • 没有找到相关文章

最新更新