
Почему ваш GitLab CI медленный: 6 ошибок в настройке Runner
sproshchaev 6 минут назад Почему ваш GitLab CI медленный: 6 ошибок в настройке Runner Средний 18 мин 62 Блог компании OTUS DevOps * Системное администрирование * Тестирование IT-систем * Карьера в IT-индустрии Туториал...
<5 — 2026'da uzaya kaç SpaceX Starship fırlatması ulaşacak?
В сфере искусственного интеллекта произошло заметное событие. sproshchaev 6 минут назад Почему ваш GitLab CI медленный: 6 ошибок в настройке Runner Средний 18 мин 62 Блог компании OTUS DevOps * Системное администрирование * Тестирование IT-систем * Карьера в IT-индустрии Туториал Всем привет, меня зовут Сергей Прощаев и в этой статье расскажу про то, почему пайплайны в GitLab CI начинают ползти, хотя раннеры вроде бы настроены «по документации». Я Tech Lead и руководитель направления Java | Kotlin разработки в FinTech & E‑commerce и преподаю на курсах разработки и архитектуры в ОТУС. Ситуация, думаю, знакомая.
Открываешь Merge Request, ставишь пайплайн, идёшь за кофе. Возвращаешься — а он всё ещё на стадии build, потому что раннер в третий раз за утро выкачивает node_modules с нуля. Разработчики ждут, деплой критичного хотфикса стоит в очереди за прогоном линтера, а в конце месяца приходит счёт за облако, где половина суммы — это простой инстансов, которые крутились вхолостую.
Технические детали
Медленный и оптимизированный CI‑конвейер: где раннер теряет время и бюджетРазберём 6 ошибок, которые чаще всего прячутся в конфигурации раннеров и в. Не абстрактных «делайте хорошо», а тех, что я регулярно вижу в боевых проектах, включая свои собственные грабли. Для каждой — симптом, причина, во что обходится и как чинить.
В конце сводная таблица и вывод о том, какой навык эти ошибки на самом деле проверяют. Сразу про контекст: основной кейс здесь — self‑hosted раннеры с Docker executor на своих серверах, самая массовая история в средних командах. Где уместно, покажу, чем ситуация отличается на Kubernetes.
И сразу оговорю, о чём статья не будет. Здесь не будет советов уровня «добавьте ещё один раннер» или «купите инстанс помощнее». Речь про ситуации, когда инфраструктура уже есть, мощностей в целом хватает, а минуты всё равно утекают — из‑за того, как раннеры и пайплайн сконфигурированы.
Отраслевые последствия
yml, но он ничего не кэшируетСимптом простой и очень обидный: в джобе честно прописан блок cache, но каждый прогон всё равно тянет зависимости заново. Достаточно открыть лог джобы, чтобы это увидеть:(лог джобы GitLab CI) Checking cache for default-protected... No URL provided, cache will not be downloaded from shared cache server.
Successfully extracted cache $ npm ci npm warn tar TAR_ENTRY_INFO ... added 1423 packages in 1m 48sСтрочка No URL provided, cache will not be downloaded — это и есть диагноз: раннер даже не пошёл за общим кэшем, а npm ci честно поставил 1423 пакета с нуля почти за две минуты. Однажды я потратил почти двадцать минут, пытаясь понять, почему кэш формально есть, а сборка ведёт себя так, будто его нет.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





