Выбор ответа Senior CI и параллельный запуск обновлено
Неравные шарды
Вопрос
Набор разбит на 4 шарда по количеству тестов. Три идут по 5 минут, один 25. Как сократить общее время?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Делить по истории длительностей и разбить гигантские файлы тестов. Общий прогон равен самому длинному шарду.
Варианты ответа
- Добавить ещё воркеров в долгий шард, а остальные оставить как есть
- Отключить самые медленные тесты и перенести их в ночной прогон
- Делить по истории длительностей и разбить гигантские файлы тестовправильный ответ
- Увеличить таймаут долгого шарда, чтобы он не упирался в лимит CI
Разбор
Общий прогон равен самому длинному шарду. Деление по количеству игнорирует длительность, а деление по истории времени (жадно: самый долгий тест в наименее загруженный шард) выравнивает части. Если раннер делит по файлам, помогает разбиение больших файлов. Отключение тестов теряет покрытие, таймаут ничего не ускоряет, а воркеры в одной джобе матрицы обычно одинаковые.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.