Запись архива

GitHub Actions переводит ubuntu-latest на Ubuntu 26.04: миграция начнётся 19 октября

Образ Ubuntu 26.04 для GitHub Actions получил статус общедоступного на x64 и arm64. С 19 октября GitHub начнёт переводить на него метку ubuntu-latest — командам стоит проверить сборки до автоматического переключения.

Настройка GitHub Actions для запуска workflow на Ubuntu 26.04
Настройка GitHub Actions для запуска workflow на Ubuntu 26.04
Изображение из исходного материала

GitHub вывел образ Ubuntu 26.04 для GitHub Actions из публичной предварительной версии. Теперь его можно использовать в производственных workflow на размещённых GitHub раннерах с архитектурами x64 и arm64.

Следом изменится и образ, скрывающийся за меткой ubuntu-latest. GitHub планирует постепенно перевести её с Ubuntu 24.04 на Ubuntu 26.04 в период с 19 октября по 19 ноября 2026 года. Репозитории, где версия операционной системы не зафиксирована явно, будут переключаться автоматически.

Для команд, разрабатывающих ИИ-сервисы, агентов и инструменты автоматизации, это прежде всего изменение среды сборки. Даже если код приложения не менялся, workflow может начать использовать другие системные библиотеки, компиляторы или предустановленные утилиты.

Ubuntu 26.04 уже можно выбрать явно

Новый образ доступен под отдельными метками. Для стандартного x64-раннера в workflow нужно указать:

yaml
runs-on: ubuntu-26.04

Для arm64 GitHub предлагает отдельную метку:

yaml
runs-on: ubuntu-26.04-arm

Статус общедоступного образа означает, что GitHub считает его готовым для производственного использования и официально поддерживает обе архитектуры. Однако это не гарантирует совместимость с workflow, ранее выполнявшимися на Ubuntu 24.04.

Ubuntu 26.04 отличается от предыдущей LTS-версии не только номером релиза. В официальном обзоре Canonical переход с Ubuntu 24.04 описан как совокупность изменений, накопившихся в выпусках 24.10, 25.04 и 25.10, а также в самой Ubuntu 26.04. Поэтому расхождения могут затрагивать системные пакеты, библиотеки и поведение инструментов, на которые неявно опирается сборка.

GitHub рекомендует изучить перечень программного обеспечения в репозитории runner-images. Именно там следует проверять состав конкретного образа, а не ориентироваться на общий список изменений настольной или серверной Ubuntu.

Миграция ubuntu-latest займёт месяц

Поэтапное переключение начнётся 19 октября и должно завершиться 19 ноября 2026 года. В течение этого периода два запуска одинакового workflow в разных репозиториях могут оказаться на разных поколениях образа: GitHub не сообщил индивидуальное расписание миграции для каждого проекта.

Изменение затронет конфигурации такого вида:

yaml
runs-on: ubuntu-latest

Редактировать файл для автоматического перехода не потребуется. После переключения метка начнёт направлять задания на Ubuntu 26.04 вместо Ubuntu 24.04.

Это удобно для проектов, которым нужна актуальная поддерживаемая среда без ручного обновления конфигурации. Но метка latest не является обещанием неизменного окружения. Если воспроизводимость важнее автоматического обновления, версию образа следует указать явно:

yaml
runs-on: ubuntu-24.04

Такая фиксация позволит временно остаться на прежнем образе, пока команда устраняет несовместимости. Она не отменяет необходимость дальнейшей миграции: за сроками поддержки каждого образа всё равно придётся следить отдельно.

Где могут появиться сбои

GitHub предупреждает, что в Ubuntu 26.04 обновлены, а в отдельных случаях удалены инструменты и их версии. Компания не утверждает, что каждый workflow потребует доработки, но выделяет основной риск: зависимость от программного обеспечения, которое было предустановлено на раннере.

Проблема может проявиться, если сборка:

  • вызывает системную команду, не устанавливая соответствующий пакет;
  • рассчитывает на определённую версию библиотеки или компилятора;
  • использует путь к файлу, каталогу или исполняемому модулю из старого образа;
  • собирает нативные расширения и зависит от системных заголовочных файлов;
  • выполняется на x64 и arm64, но не проверяет обе архитектуры отдельно.

Для ИИ-проектов особенно чувствительны зависимости с нативными компонентами. Python- или Node.js-пакет может устанавливаться через менеджер зависимостей, но при сборке обращаться к системному компилятору и библиотекам раннера. Поэтому успешная установка зависимостей ещё не подтверждает совместимость: нужно выполнить тесты, упаковку артефактов и, если предусмотрено workflow, развёртывание в тестовую среду.

Не следует также предполагать, что набор программ Ubuntu 26.04 на локальной машине полностью совпадает с образом GitHub Actions. Размещённый раннер — подготовленный GitHub образ с собственным перечнем предустановленного ПО.

Сравнить старый и новый образы можно в одном workflow

Самый информативный тест — временно запускать одну и ту же задачу на Ubuntu 24.04 и 26.04. Для этого можно добавить матрицу операционных систем:

yaml
jobs:
test:
strategy:
matrix:
os: [ubuntu-24.04, ubuntu-26.04]
runs-on: ${{ matrix.os }}
steps:
— uses: actions/checkout@v4
— name: Install dependencies
run: ./scripts/install.sh
— name: Run tests
run: ./scripts/test.sh

Команды в примере необходимо заменить на команды конкретного проекта. Цель матрицы — отделить ошибки самого приложения от несовместимости с новым образом.

При проверке стоит сравнить не только итоговый статус задания, но и несколько промежуточных результатов:

Устанавливаются ли зависимости без обращения к удалённым пакетам.

Собираются ли нативные модули и бинарные файлы.
3. Совпадают ли результаты тестов на двух версиях Ubuntu.
4. Создаются ли контейнеры, архивы и другие артефакты.
5. Работают ли скрипты публикации и тестового развёртывания.
6. Нет ли различий между x64 и arm64, если проект поддерживает обе архитектуры.

Если тест на Ubuntu 26.04 падает, полезно вывести версии задействованных инструментов непосредственно в журнал задания. После этого зависимость можно установить явно, зафиксировать её версию либо обновить сборочный скрипт. Такой подход надёжнее, чем рассчитывать на состав базового образа.

Какую метку оставить к 19 октября

Выбор зависит от требований проекта.

ubuntu-latest подходит командам, которые готовы регулярно тестировать новые поддерживаемые образы и не требуют полностью неизменной системной среды. В этом случае Ubuntu 26.04 лучше проверить заранее, но после успешного теста конфигурацию можно не менять.

ubuntu-26.04 стоит выбрать, если проект уже совместим с новой системой, а команде нужна предсказуемая версия образа. Это защищает от следующего автоматического обновления latest, хотя установленное внутри образа ПО всё равно может получать обновления.

ubuntu-24.04 можно временно сохранить для сборок, которые не успевают адаптировать до начала миграции. Это отсрочка, а не постоянное решение.

До 19 октября владельцам репозиториев следует найти все вхождения ubuntu-latest, запустить критические задания на ubuntu-26.04 и сверить используемые инструменты с перечнем ПО в runner-images. Для arm64 необходим отдельный прогон на ubuntu-26.04-arm: успешный тест x64 не подтверждает совместимость второй архитектуры.

Источники