Есть такая закономерность в жизни инженерных команд: пока разработчики думают о фичах и дедлайнах, инфраструктура под ними медленно стареет. Версия Ubuntu в сборочном окружении остаётся той же, что была при старте проекта, инструменты замирают, зависимости постепенно выходят за рамки поддержки. А потом наступает апрель 2026, и платформа сама говорит: пора.
Именно это произошло с Bitrise - платформой для мобильного CI/CD, которая в марте объявила о плановой смене Linux-стеков. Событие выглядит техническим и рутинным, но за ним стоит логика, которую стоит понять каждому, кто строит автоматизированные сборочные пайплайны для Android и не только.
Три изменения, которые произошли одновременно
Апрельские обновления Bitrise можно описать тремя конкретными изменениями, каждое из которых несёт собственный смысл.
Стек "Ubuntu Noble 24.04 - Bitrise 2025 Edition" стал дефолтным стабильным стеком. Стек "Ubuntu 22.04 for Android and Docker" перешёл в замороженное состояние и будет полностью удалён в апреле 2027. А в качестве нового экспериментального edge-стека добавлен "Ubuntu Resolute 26.04 - Bitrise 2026 Edition".
Три состояния сосуществуют одновременно: актуальный стабильный стек на 24.04, замороженный стек на 22.04, которому остался год жизни, и свежий экспериментальный стек на 26.04. Это не случайность, а намеренная архитектура перехода, дающая командам время на адаптацию без форс-мажора.
Важно понимать, что именно означает "замороженный стек" в терминах Bitrise. Стек на Ubuntu 22.04 перестаёт получать любые обновления, оставаясь доступным для запуска сборок. Полное удаление состоится в апреле 2027, то есть у команд есть ровно год для планомерной миграции. Это честный срок - достаточный, чтобы не спешить, и достаточно короткий, чтобы не откладывать.
Что изменилось в стеке между 22.04 и 24.04
Переход с Ubuntu 22.04 на 24.04 в контексте Android-разработки - это не просто смена базовой ОС. Внутри нового стека серьёзно обновилось содержимое.
Предустановленные системные образы и платформы Android обновлены до актуальных версий: платформы и системные образы для Android 33 больше не установлены по умолчанию, вместо них теперь предустановлены платформы для Android 36. Системный образ AOSP ATD переехал с android-34 на android-35. Дефолтная версия build-tools изменилась с 35.0.1 на 36.0.0. Kotlin CLI обновлён с 2.0.0 до 2.3.0.
Это означает: проекты, которые всё ещё таргетируют Android API 33, теперь должны явно загружать эту платформу в процессе сборки - она больше не приходит бесплатно. Звучит как мелочь, но именно такие неявные изменения ломают сборки в самый неподходящий момент, если о них узнают не заранее, а постфактум.
Среди языковых и рантаймовых изменений: Node 24 (текущая LTS-версия) стал новым дефолтом, Flutter SDK обновлён с 3.16.8 до 3.38.7, Ruby 4.0 стал доступен как предустановленная версия, Python 3.14 теперь является дефолтной предустановленной версией.
Наберём воздуха и представим реальный сценарий. Команда мобильных разработчиков работает на Bitrise с 2022 года, никогда особо не трогала конфигурацию стека. Их пайплайн собирает Android-приложение, тесты проходят, релизы выходят. И вот в апреле 2026 базовый стек поменялся. Если в пайплайне жёстко прописан Ruby 3.1 (который, кстати, достиг конца жизни и убран из нового стека) или предполагается, что Android 33 находится в системе, - сборка просто падает. Не потому что что-то сломалось, а потому что мир вокруг двигался, пока никто не смотрел.
Зачем нужен edge-стек на Ubuntu 26.04
Появление экспериментального стека на Ubuntu 26.04 "Resolute Raccoon" - это отдельная история. Bitrise традиционно запускает новый edge-стек параллельно со стабилизацией предыдущего, давая командам возможность начать тестирование заранее.
Ubuntu Noble 24.04 - Bitrise 2025 Edition уже был доступен как edge-стек раньше. Пользователям рекомендовалось начать тестирование сборок на этом edge-стеке как можно скорее, так как в течение апреля 2026 он должен был стать дефолтным стабильным стеком. Та же схема теперь повторяется с 26.04: пока одни команды адаптируются к 24.04 как к новой норме, прогрессивные могут уже смотреть, что принесёт следующий цикл.
Ubuntu 26.04 сам по себе несёт принципиальные изменения: ядро Linux 7.0, GNOME 50 исключительно на Wayland, Rust-реализация sudo, Python 3.14 как дефолт, обязательный cgroup v2 в systemd 259. Для сборочных окружений важнее всего последнее: контейнеры и инструменты, которые опирались на cgroup v1, в новом стеке работать не будут. Это не гипотетическая угроза - это реальное ограничение для части Docker-образов и gradle-демонов, которые используются в Android CI.
Почему CI/CD инфраструктура стареет незаметно
Честно говоря, Bitrise решает за своих пользователей одну из самых неудобных проблем платформенного инжиниринга - проблему незаметного устаревания. Когда команда управляет собственными сборочными агентами, версия Ubuntu на них может оставаться неизменной годами. Никто не замечает, пока что-то не сломается, а к тому моменту разрыв между средой разработки и средой сборки становится пропастью.
Обновление стека в CI - это не просто смена ОС. Это пересборка неявных предположений, заложенных в пайплайне. Какая версия Java установлена? Какие переменные окружения выставлены по умолчанию? Какие системные библиотеки доступны? В стабильно работающем пайплайне эти вопросы не задаются, потому что всё и так работает. Когда стек меняется - все они всплывают одновременно.
Bitrise обновила политику обновления стеков для своих Linux-стеков, сделав обновления, устаревания и удаления более регулярными и предсказуемыми. Предсказуемость здесь ключевое слово. Команда, которая знает за год о предстоящем удалении стека, может заложить тестирование в обычный спринт. Команда, которая узнаёт об этом в день удаления, тушит пожар.
Что означает смена стеков для Android-разработки в 2026
Переход CI-платформ на Ubuntu 24.04 и 26.04 как новые базовые стеки сигнализирует о более широком сдвиге в том, на что рассчитана современная Android-разработка. Android API 33 уходит из предустановленных по умолчанию - это прямое отражение того, что Google уже давно продвигает targetSdkVersion в сторону 35 и 36. Ruby 3.1 вымывается из стеков - это сигнал для команд, использующих fastlane, обновить версии руби-зависимостей.
Каждое такое изменение поодиночке выглядит мелочью. Но если посмотреть на них в совокупности, складывается картина: сборочная инфраструктура перестаёт быть пассивным фоном и становится активным участником поддержки качества. Пайплайн, собирающий приложение против актуальной версии Android с актуальными инструментами, находит проблемы совместимости раньше, чем их находят пользователи.
Для команд, ещё не перешедших на новый стабильный стек Bitrise, апрель 2026 - хорошее время начать. Год до удаления стека на 22.04 пройдёт быстрее, чем кажется, а тестирование на edge-стеке Ubuntu 26.04 уже доступно прямо сейчас. Енот решительный по натуре - и этот момент как раз подходящий, чтобы разделить его уверенность.