如何减少WebRTC的gclient sync运行时间

如何减少WebRTC的gclient sync运行时间,webrtc,travis-ci,gclient,Webrtc,Travis Ci,Gclient,我正在用travis CI建造图书馆 这运行得很好,但需要很多时间,而且越来越多的情况下,构建以以下消息结束: 作业超出了作业的最大时间限制,已被删除 终止 您可以查阅失败的日志 在gclient同步期间: _______ running 'download_from_google_storage --directory --recursive --num_threads=10 --no_auth --quiet --bucket chromium-webrtc-resources src/re

我正在用travis CI建造图书馆

这运行得很好,但需要很多时间,而且越来越多的情况下,构建以以下消息结束:

作业超出了作业的最大时间限制,已被删除 终止

您可以查阅失败的日志

gclient同步期间

_______ running 'download_from_google_storage --directory --recursive --num_threads=10 --no_auth --quiet --bucket chromium-webrtc-resources src/resources' in '/home/travis/build/mpromonet/webrtc-streamer/webrtc'
...
Hook 'download_from_google_storage --directory --recursive --num_threads=10 --no_auth --quiet --bucket chromium-webrtc-resources src/resources' took 1255.11 secs
我禁用了测试,所以我认为这是无用的,需要很多时间


是否需要提供一些参数或设置一些变量来避免这项耗时的任务?

您可以将整个工具链烘焙到docker映像中,并在其中运行实际的测试/构建。将docker映像更新委托给另一个自动化流程(例如travis ci cronjob)

另一个好处是,现在您可以完全控制工具链的各个部分何时更改。我觉得这很重要

编辑: 一些参考资料可以阅读

  • 使用docker的官员
  • 特拉维斯的照片
  • Dockerhub

一种不下载依赖项中定义的chromium webrtc资源的方法

要打包它,请删除此节或添加假条件

为了进行修补,我使用了以下命令:

sed -i -e "s|'src/resources'],|'src/resources'],'condition':'rtc_include_tests==true',|" src/DEPS

这将节省大约20mn,并允许travis构建保持在超时以下。

谢谢,您的意思是从.travis.yml运行docker吗?这可能是一种分割作业的方法,我会考虑这一点,但制作一个travis脚本来构建docker映像的一部分,然后制作第二个脚本来使用前一个映像并继续构建过程似乎很复杂……是的,这就是我的意思。我为答案添加了一些链接,应该会有所帮助。由于您的工具链docker可能非常直截了当,您也可以使用dockerhub来构建它。这比在travis上构建更简单。这节省了我这么多的构建时间,我很好奇你是否尝试过renefritze在回答中提到的docker方法?如果是这样的话,它会有很大帮助吗?@jackz314不,我没有尝试,我想我的想法是拆分构建
sed -i -e "s|'src/resources'],|'src/resources'],'condition':'rtc_include_tests==true',|" src/DEPS