Цены 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 в месяц. Большинство команд, которые собирают каждый день, проходят эту точку за первые две недели.