Ускорить пайплайн с часа до 15 минут
Вопрос
Автотесты на пул-реквест идут час, разработчики жалуются. Как сократите до 15 минут?
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Измерить: где время, самые долгие тесты и шаги, ожидание агентов
Разделить наборы: на PR смоук и затронутое, полный после мержа
Параллелить: воркеры и шардинг по длительностям, изоляция данных
Опустить проверки ниже: API вместо UI, данные через API
Инфраструктура: кеш зависимостей, готовые образы, свой пул агентов
Удалить дубли и мёртвые тесты, следить за трендом
Что могут спросить следом
- Как убедиться, что не потеряли надёжность?
- Как делить тесты по длительности?
Разбор
Образцовый ответ: «Сначала измеряю: сколько уходит на установку зависимостей, сборку, ожидание агента и сами тесты, какие 20 тестов самые долгие. Обычно выигрыш в трёх местах. Первое: на PR не весь регресс, а смоук и тесты затронутых модулей, полный набор после мержа. Второе: параллельность, воркеры плюс 4-6 шардов, делённых по истории длительностей, а для этого данные изолированы на воркер. Третье: UI-тесты, которые проверяют логику, переношу на API, подготовку данных через UI убираю. Плюс кеш зависимостей и образ с браузерами. Надёжность контролирую: доля багов, пойманных после мержа, не должна вырасти»).
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.