Руководство

Цены GitHub Actions на реальных цифрах

GitHub Actions бесплатен для публичных репозиториев. Для приватных оплата поминутная, и у каждого типа раннера своя ставка. На этой странице все ставки собраны в одном месте. Здесь объяснено, как на самом деле расходуются включённые минуты. И показано, почему в счёте в итоге главная строка это macOS.

Ставки за минуту

Это опубликованные ставки GitHub для hosted раннеров в приватных репозиториях. Они указаны за минуту реального времени. Каждая задача округляется вверх до целой минуты:

  Linux 2-core (x64)          $0.006
  Linux 2-core (arm64)        $0.005
  Windows 2-core              $0.010
  macOS 3-core / 4-core       $0.062
  macOS 12-core               $0.077
  macOS 5-core (M2 Pro)       $0.102

Бросаются в глаза две вещи. Стандартная минута macOS стоит примерно в десять раз больше минуты Linux, а самый большой раннер macOS примерно в семнадцать раз. Всё остальное в счёте мелочь рядом с этой колонкой.

Как на самом деле работают включённые минуты

В планы каждый месяц входит пакет минут: примерно 2,000 на Free, 3,000 на Team и 50,000 на Enterprise. Подвох в том, что лимит считается в минутах, приведённых к Linux. Минута macOS расходует десять включённых минут, а минута Windows две. Значит, одна десятиминутная сборка iOS съедает сто минут из лимита в 3,000.

На практике iOS-команда на плане Team исчерпывает лимит за первую или вторую неделю. Остаток месяца она платит по поминутной ставке. Включённые минуты это не скидка на работу с macOS, а скорее короткая отсрочка.

Как выглядит реальный месяц

Возьмём небольшую команду. Она запускает 12-минутный набор тестов на каждый pull request, около 20 пушей за рабочий день. Это примерно 5,000 минут macOS в месяц:

  5,000 min  x  $0.062  =  $310/mo   (standard runner)
  5,000 min  x  $0.102  =  $510/mo   (largest runner)
  flat dedicated M6              $139/mo   (unlimited)

По стандартной ставке машина за фиксированную цену выигрывает начиная примерно с 2,242 минут в месяц. Дальше разрыв растёт с каждой сборкой. Введите свои цифры в калькулятор.

Расходы помимо минут

  • Хранилище. Артефакты и кэши сверх включённого объёма оплачиваются за гигабайт в месяц. Большие архивы Xcode быстро накапливаются, если срок хранения оставлен по умолчанию.
  • Повторные загрузки. Hosted раннеры стартуют с чистого листа. Каждая задача заново скачивает зависимости и пересобирает кэши. Это время тоже оплачивается по ставке macOS.
  • Очередь бесплатна, но не дёшева. Ожидание раннера macOS не тарифицируется, но задерживает каждый merge.

Единственное важное решение

Для команд, которые собирают каждый день, вопрос не в том, какой размер раннера macOS выбрать. Вопрос в том, платить ли поминутно вообще. Ниже точки окупаемости поминутная оплата нормальна и проста. Выше неё выделенный Mac за фиксированную цену дешевле каждый месяц и становится быстрее по мере прогрева кэшей. Руководство по минутам macOS разбирает этот расчёт подробнее.

Частые вопросы

Сколько стоит минута в GitHub Actions?

+

Для приватных репозиториев: Linux 2-core $0.006, Windows 2-core $0.010, macOS 3-core или 4-core $0.062, macOS 12-core $0.077. Раннер macOS на 5-core M2 Pro стоит $0.102 за минуту. Для публичных репозиториев стандартные раннеры бесплатны.

Как считаются включённые минуты для macOS?

+

Включённые минуты считаются в минутах, приведённых к Linux. Каждая минута macOS расходует десять включённых минут, а каждая минута Windows две. Поэтому лимита в 3,000 минут хватает всего примерно на 300 минут macOS.

GitHub Actions бесплатен для публичных репозиториев?

+

Да, стандартные hosted раннеры бесплатны для публичных репозиториев. Большие раннеры и приватные репозитории оплачиваются поминутно.

Когда выделенный Mac становится дешевле hosted macOS у GitHub?

+

По стандартной ставке $0.062 выделенный раннер за фиксированные $139 в месяц окупается примерно на 2,242 минутах macOS в месяц. Большинство команд, которые собирают каждый день, проходят эту точку за первые две недели.

Похожие руководства