【问题标题】:How to reduce time running gclient sync for WebRTC如何减少为 WebRTC 运行 gclient 同步的时间
【发布时间】:2017-10-14 16:01:59
【问题描述】:

我正在使用 travis CI 构建 WebRTC 库。

这运行良好,但需要花费大量时间,而且构建越来越频繁地以消息结尾:

作业超过了作业的最大时间限制,并且已被 终止。

可以查阅失败的日志travis log

gclient sync期间:

_______ 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

我禁用了测试,所以我认为这没用,而且需要很多时间。

有没有提供一些参数或设置一些变量来避免这个耗时的任务?

【问题讨论】:

    标签: webrtc travis-ci gclient


    【解决方案1】:

    一种不下载依赖项DEPS中定义的chromium-webrtc-resources的方法

    {
        # Download test resources, i.e. video and audio files from Google Storage.
        'pattern': '.',
        'action': ['download_from_google_storage',
                   '--directory',
                   '--recursive',
                   '--num_threads=10',
                   '--no_auth',
                   '--quiet',
                   '--bucket', 'chromium-webrtc-resources',
                   'src/resources'],
      },
    

    是修补它删除这部分或添加一个错误的条件。

    为了打补丁,我使用了以下命令:

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

    这节省了大约 2000 万,并允许 travis 构建保持在超时以下。

    【讨论】:

    • 这为我的构建节省了很多时间,我很好奇您是否尝试过他回答中提到的 docker 方法 renefritze?如果是这样,它有多大帮助?
    • @jackz314 不,我没有尝试,我猜这个想法是拆分构建
    【解决方案2】:

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

    另一个好处是,您现在可以完全控制工具链的某些部分何时发生变化。我觉得这很重要。

    编辑: 一些要阅读的资源。

    【讨论】:

    • 谢谢,您的意思是从 .travis.yml 运行 docker 吗?这可能是一种拆分工作的方法,我会考虑这一点,但是制作一个构建 docker 镜像的一部分的 travis 脚本,然后是使用前一个镜像并继续构建过程的第二个脚本似乎很复杂......
    • 是的,我就是这个意思。我添加了一些链接到应该有帮助的答案。由于您的工具链 docker 可能非常简单,您也可以使用 dockerhub 来构建它。这比在 travis 上构建更简单。
    猜你喜欢
    • 1970-01-01
    • 2015-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-13
    • 1970-01-01
    • 2016-07-24
    • 2021-11-28
    相关资源
    最近更新 更多