Руководство

MacStadium или GitHub Actions для iOS CI

MacStadium и GitHub Actions ищут вместе, потому что они решают одну задачу с противоположных сторон. GitHub продаёт минуты на общих Mac, которых вы никогда не видите. MacStadium сдаёт в аренду целый Mac на своей площадке и разрешает делать с ним что угодно. На этой странице разобрано, когда что подходит. И описан промежуточный вариант, который на самом деле ищут большинство небольших команд.

Что это такое на самом деле

  • Hosted раннеры macOS у GitHub это временные виртуальные машины с поминутной оплатой, примерно от $0.062 до $0.102. Между задачами ничего не сохраняется. Нулевая настройка, нулевое обслуживание, а счёт растёт с каждой сборкой.
  • MacStadium это выделенное железо Apple на их площадке с помесячной арендой. Есть ещё Orka для команд, которым нужна виртуализация macOS в больших масштабах. Вы получаете root на настоящем Mac и запускаете на нём любой CI, включая GitHub Actions. Планы поддержки и настройка оплачиваются отдельно. Продукт создан с расчётом на корпоративные парки машин.

Когда правильный ответ это hosted раннеры GitHub

  • Вы собираете несколько раз в неделю, и счёт не превышает ста долларов.
  • У вас нет и не будет человека, который захочет отвечать за машину.
  • Вам нужна большая параллельная матрица, которую одна машина не потянет.
  • Ваши репозитории публичные, а для них hosted раннеры бесплатны.

Когда правильный ответ это выделенный Mac

  • Вы тратите больше примерно 2,242 минут macOS в месяц. Здесь машина за фиксированную цену дешевле поминутной оплаты.
  • Вам важны прогретые кэши. DerivedData, SwiftPM и CocoaPods остаются на диске, и 12-минутные сборки превращаются в 4-минутные.
  • Вы хотите сами фиксировать Xcode и среду выполнения симулятора, а не подстраиваться под обновления hosted образов.

Промежуток между ними

Сила MacStadium в мощностях и корпоративных процессах: много машин, виртуализация, контракты, служба поддержки. Команде iOS из пяти человек столько не нужно. К тому же это требует работы: зарегистрировать раннер, поддерживать службу и стирать машину, когда кто-то уходит. Hosted раннеры GitHub снимают эту работу, но берут за неё плату в каждой минуте.

MacRun намеренно занимает этот промежуток. Один выделенный M6 mini на команду, уже зарегистрированный как раннер GitHub Actions, за фиксированные $139 в месяц. Контроль и стирание мы берём на себя. Это цена выделенного железа без хлопот с выделенным железом. Прямое сравнение с MacStadium разбирает всё по пунктам.

Простой способ решить

  under 2,242 macOS min/mo     GitHub-hosted, keep it simple
  over 2,242, one team         one dedicated Mac, flat price
  many teams, many machines     MacStadium (or a fleet of dedicated units)

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

Можно ли запускать GitHub Actions на машине MacStadium?

+

Да. Mac от MacStadium это обычный хост с macOS. Вы устанавливаете на него агент self-hosted раннера GitHub и указываете его в workflow. Регистрация, обновления и аптайм остаются на вас.

MacStadium дешевле hosted раннеров GitHub?

+

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

Что MacRun даёт по сравнению с арендой Mac самому?

+

Раннер предустановлен и под контролем. Xcode зафиксирован. Подготовка занимает часы, а не дни. Когда аренда заканчивается, машину автоматически стирают и выдают заново. Вы меняете две строки YAML и собираете.

Теряю ли я параллельность с одним выделенным Mac?

+

Задачи на одной машине идут по одной. Если в каждом pull request нужна широкая матрица, добавьте машины. Или оставьте матрицу на hosted раннерах GitHub, а сборку основной ветки перенесите на выделенный Mac.

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