ubuntu-latest и LTS
Тема дорожной карты · GitHub Actions
GitHub-hosted runner'ы Ubuntu доступны в закреплённых мажорных версиях через runs-on: ubuntu-22.04, ubuntu-24.04, и псевдоним ubuntu-latest, переключающийся на новейший GA-образ по мере устаревания предыдущих. Каждая версия runner'а Ubuntu поставляется с документированным перечнем ПО — языковые инструменты, Docker, kubectl, браузеры, облачные CLI, — обновляемым командой GitHub ежемесячно; закрепление конкретной версии защищает долгосрочные workflow от поломок при смене псевдонима. Когда новая версия runner'а Ubuntu выходит в общий доступ, GitHub публикует сроки устаревания предыдущей для планирования миграции. Прагматичная политика: закрепляйте нумерованную версию Ubuntu в продакшн-workflow и тестируйте на ubuntu-latest в параллельной матрице.
Как это работает
ubuntu-latest и LTS: GitHub-hosted runners (ubuntu-latest, windows-latest, macos-latest — свежая VM на job, предустановлены распространённые тулы), GitHub-hosted larger runners (больше CPU/RAM, платно), self-hosted runners (ваши машины, бесплатно, но управляете сами). ARM-runners на некоторых планах. Логи job стримятся живо; артефакты (actions/upload-artifact, download-artifact) передают файлы между jobs.
Когда применять
ubuntu-latest — почти для всего: быстрейший пул, большинство actions на нём тестируется. Larger runners — для тяжёлых сборок (долгая компиляция, большая test suite). Self-hosted — для: сборок с GPU, сборок с доступом к приватной инфре (БД, internal registries), сборок, которым не доверяете VM GitHub. Пиньте конкретную версию ubuntu (ubuntu-22.04) для воспроизводимости после стабилизации образа.
Типичные ошибки
Ловушки ubuntu-latest и LTS: ubuntu-latest тихо меняет major-версию OS (внезапно список apt-пакетов другой); self-hosted runner оставлен online + idle (security-риск — авто-выключение через actions/runner-action-listener или похожее); self-hosted runners не изолированы per repo (malicious workflow одного репо pwn-ит другие, делящие runner).