Руководство

Сколько на самом деле стоят минуты macOS в GitHub Actions

GitHub берёт за время раннеров macOS во много раз больше, чем за время Linux. На этой странице разобраны ставки. Показано, где выделенная машина за фиксированную плату становится выгоднее поминутной оплаты. И перечислены практичные способы сократить счёт за CI на macOS.

Ставки

На hosted раннерах GitHub минута Linux стоит примерно $0.006, а минута macOS примерно от $0.062 до $0.102, в зависимости от размера раннера. Это множитель примерно от 10x до 20x за ту же минуту реального времени.

Включённые в платные планы минуты тоже списываются с коэффициентом. Минута macOS расходует лимит намного быстрее, чем минута Linux. Большинство iOS-команд исчерпывают включённые минуты в начале месяца, а дальше платят поминутно.

Откуда берётся множитель

  • macOS работает только на железе Apple. Провайдеры не могут плотно упаковать нагрузки macOS на обычные серверы, как они делают с Linux.
  • Лицензия Apple определяет, как Mac сдают в аренду и делят. Это ограничивает переподписку.
  • Hosted раннеры начинают каждую задачу с чистого листа. Вы платите ещё и за минуты, когда заново скачиваются зависимости и пересобираются кэши, которые у вас уже были.

Расчёт окупаемости

По нижней ставке от $0.062 до $0.102 за минуту выделенный раннер за фиксированные $139 в месяц окупается примерно на 2,242 минутах в месяц. Для понимания: это несколько pull request в день в настоящем iOS-проекте с тестами.

  3,000 min/mo   metered $240 to $480     flat $139
  6,000 min/mo   metered $480 to $960     flat $139
 12,000 min/mo   metered $960 to $1,920   flat $139

Введите свои минуты в калькулятор и увидите точную цифру для своей команды.

Как сократить счёт

  • Перенесите всё, что не требует macOS, на Linux. Линтерам, юнит-тестам общих пакетов и инструментам релиза Mac почти никогда не нужен.
  • Кэшируйте активно. На hosted раннерах восстанавливайте кэши SwiftPM, CocoaPods и DerivedData. Тогда вы перестанете платить за их пересборку.
  • Урежьте лишнее в матрице. Полную матрицу устройств запускайте на main, а для pull request хватит одной конфигурации.
  • После точки окупаемости переходите на фиксированную цену. Когда вы стабильно выше 2,242 минут, поминутная оплата становится самым дорогим из доступных вариантов.

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

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

+

Примерно от $0.062 до $0.102 за минуту, в зависимости от размера раннера. Для сравнения, Linux стоит примерно $0.006. Кроме того, минуты macOS расходуют включённые в план минуты с повышающим коэффициентом.

Почему раннеры macOS намного дороже Linux?

+

Законно запускать macOS можно только на железе Apple. Поэтому провайдеры не могут собрать такие нагрузки на дешёвых обычных серверах. К тому же лицензия Apple ограничивает, как машины делят между клиентами. Железо выделенное, и его стоимость раскладывается на ваши минуты.

С какого момента выделенный Mac дешевле поминутной оплаты?

+

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

Покрывают ли включённые минуты GitHub сборки на macOS?

+

Частично. Для macOS включённые минуты списываются с коэффициентом, поэтому лимит тает намного быстрее, чем кажется по цифре. Команды, которые собирают каждый день, обычно переходят на платные минуты в первые одну или две недели месяца.

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