Получи случайную криптовалюту за регистрацию!

Последние 4 месяца в Авиасейлс я переделывал CI пайплайн нашег | Валя читает ишью

Последние 4 месяца в Авиасейлс я переделывал CI пайплайн нашего фронтенда. Так получилось, что проект достаточно молодой, LoC не так много, а пайплайн приходилось ждать по 25 минут. Решили, что нужно срочно это исправлять.

Получилось достаточно много оптимизаций:
• поправил лимиты на ресурсы (CPU) в кубернетесе;
• убрал дубликаты — нод-модули устанавливались дважды: на хост и в докер-контейнере. Теперь устанавливаем их сразу в контейнере и уже из него достаем их на хост;
• избавился от лишних шагов — например, мы клонировали репозиторий целиком, т.к. нам нужно знать какие ветки существуют. А теперь мы получаем ветки через git ls-remote;
• включил кеширование для чего только можно — TS, Jest, ESLint, webpack и Storybook;
• запускаем джобы максимально параллельно.

Всё это помогло уместить пайплайн в 10 минут без кеша и в 5 с кешем, т.е. на 15-20 минут быстрее! А это, в свою очередь, увеличило количество возможных деплоев с 12 до 23 в день!