GitHub Actions Runner Images За кулисами виртуальных машин для CI/CD

03 Jul, 2026
12,895
🔱 3,771
👥 364

Представьте, что вам нужно запустить тесты вашего приложения одновременно на Ubuntu, Windows и macOS. Вручную настраивать три разные машины? Нет, спасибо! Именно здесь на сцену выходят GitHub Actions Runner Images — предварительно настроенные образы виртуальных машин, которые делают жизнь разработчиков намного проще.

Что скрывается за образами runner'ов?

Репозиторий actions/runner-images — это источник истины для всех, кто использует GitHub Actions или Azure Pipelines. Здесь хранятся конфигурации виртуальных машин, которые:

  • Автоматически запускают ваши workflow в GitHub Actions
  • Работают как агенты в Azure DevOps

Интересный факт: эти же образы используются внутри Microsoft для своих нужд, так что можете быть уверены в их качестве.

Какие ОС доступны «из коробки»?

GitHub поддерживает впечатляющий спектр операционных систем:

Linux

  • Ubuntu 24.04 (тег ubuntu-latest)
  • Ubuntu 22.04

macOS

  • macOS 15 (включая Arm64 версию)
  • macOS 14 (включая Arm64)
  • macOS 13 (включая Arm64)

Windows

  • Windows Server 2025
  • Windows Server 2022 (windows-latest)
  • Windows Server 2019 (уже deprecated)

Каждый образ содержит сотни предустановленных инструментов — от Docker и Node.js до специфических SDK. Например, на Ubuntu вы найдёте даже такие нишевые вещи, как HHvm и GNU Fortran.

Реклама

Как работают обновления?

  1. Еженедельные апдейты: Каждую неделю образы получают обновления ПО. При этом версии инструментов могут меняться — что важно учитывать в CI.
  2. Миграция на новые ОС: Когда выходит новая версия ОС (например, Ubuntu 24.04), метка -latest постепенно (за 1-2 месяца) переносится на неё.
  3. Статусы развёртывания: За прогрессом обновлений можно следить через badges в README или подписавшись на релизы репозитория.

Совет из практики: если ваши тесты критичны к версии ОС, указывайте конкретный тег (например, ubuntu-22.04), а не ubuntu-latest.

Что внутри образов?

Политика предустановки инструментов впечатляет своей продуманностью:

  • Популярные языки:
    • Java: все LTS версии
    • Node.js: 3 последних LTS
    • Python: 5 самых популярных версий
  • Специфичные инструменты:
    • Android NDK: 1 не-LTS и 2 LTS версии
    • Xcode: все версии для текущего macOS

Любопытный момент: для .NET Core поддерживаются только 2 последних LTS и 1 текущая версия — видимо, чтобы не раздувать образы.

Когда стоит заглянуть в этот репозиторий?

  1. Отладка падающего CI: Проверить, не изменилась ли версия ключевого инструмента.
  2. Запрос нового ПО: Хотите, чтобы в образах предустанавливался ваш любимый инструмент? Можно создать issue.
  3. Создание кастомных образов: Хотя официально поддерживается только main-ветка для сборки.

Личный опыт использования

Работая с GitHub Actions, я несколько раз сталкивался с ситуациями, когда:

  • Тесты падали из-за обновления версии Node.js
  • Не хватало специфичной версии Python

Знание политик обновления образов (которые подробно описаны в репозитории) помогло быстро решить эти проблемы.

Репозиторий runner-images — это must-know для всех, кто серьезно работает с GitHub Actions. Он не только даёт понимание, на чём работают ваши CI-пайплайны, но и позволяет:

  • Предвидеть проблемы с обновлениями
  • Запрашивать нужные инструменты
  • Глубже понимать систему в целом

Особенно рекомендую изучить его:

  • DevOps-инженерам
  • Разработчикам, чьи тесты зависят от окружения
  • Всем, кто хочет выжать максимум из GitHub Actions

P.S. Если вы ещё не подписаны на релизы этого репозитория — самое время это сделать. Trust me, ваш будущий я скажет вам спасибо, когда очередное обновление не сломает production.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.