HeadlinesBriefing favicon HeadlinesBriefing.com

ИИ-кодирование делает CI узким местом: решение Linear

Hacker News •
×

Ранее в этом году Tuomas, наш CTO, поручил мне задачу: «Затраты на CI высоки». Он также хотел, чтобы CI работал быстрее. Агенты ускоряют выпуск, но проверка изменений не поспевает за этим. Каждый PR должен пройти через CI, поэтому по мере ускорения разработки CI становится узким местом, что повышает затраты на инфраструктуру и заставляет разработчиков дольше ждать обратной связи. В Linear мы оптимизировали время ожидания PR и время раннера. Несмотря на то, что наборы тестов почти учетверились, мы сократили время ожидания PR с более чем 6 минут до чуть более 5 и вдвое уменьшили время раннера на тест.

Мы улучшили CI четырьмя способами: обновили инфраструктуру и инструменты, оптимизировали задачи, которые управляют другой работой, сократили повторную настройку и сделали выполнение тестов более эффективным. Кодовая база Linear в основном на TypeScript, но многие оптимизации применимы к любым языкам.

Перенос рабочих нагрузок с GitHub Actions на сторонние раннеры с более быстрыми CPU и хранилищем сократил время задач в среднем на 34%, при этом tsc упал на 52%. Переход на tsgo сократил недельную медиану проверки tsc на 73%. Переписывание правил lint для использования статического анализа позволило ESLint отказаться от TypeScript, сократив время lint API на 68% и lint всего репозитория на 55%. Переход на Oxlint еще больше сократил минуты раннера. Мы также оптимизировали управляющие задачи, ограничив глубину fetch, чтобы сократить самый медленный контроль с 94 секунд до 20.