Как сократить время запуска gclient sync для WebRTC
Я строю библиотеку WebRTC, используя travis CI.
Это работает хорошо, но занимает много времени и все чаще сборка заканчивается сообщением:
Задание превысило максимальный срок для заданий и было прекращено.
Вы можете обратиться к журналу, который не удалось 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
Я отключил тесты, так что я считаю, что это бесполезно и занимает много времени.
В любом случае можно привести некоторые аргументы или установить некоторые переменные, чтобы избежать этой дорогостоящей задачи?
2 ответа
Способ не загружать chromium-webrtc-resources
определены в зависимостях DEPS
{
# 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
Это экономит около 20 млн. И позволяет сборке Трэвиса оставаться ниже времени ожидания.
Вы можете запекать весь набор инструментов в образ докера и запускать в нем свои реальные тесты / сборки. Делегируйте обновление образа докера в другой автоматизированный процесс (например, travis-ci cronjob).
Дополнительным преимуществом является то, что теперь у вас есть полный контроль над изменением частей вашей цепочки инструментов. Я считаю это очень важным.
Изменить: некоторые ресурсы для чтения.
- Официальные документы travis для использования докера
- Создание и размещение изображений на travis
- Dockerhub автоматизированная сборка