2026: остановка Cirrus CI (до 2026-06-01) — миграция: CircleCI macOS Fleet и эксклюзивный удалённый Mac с самохостинговым GitHub Actions runner — минуты, очереди, секреты и SSH: матрица + FAQ
Если вы ведёте iOS/macOS CI на Cirrus и планируете переезд к 2026-06-01, типичный выбор сводится к двум полюсам: управляемый пул CircleCI (macOS Fleet) с поминутной экономикой платформы и эксклюзивный удалённый Mac под самохостинговым GitHub Actions runner, где вы контролируете ОС, кэш и SSH. Ниже — одна карта для ревью (минуты · очередь · граница секретов · управляемость SSH) и FAQ. Для headless-лаборатории и SSH-сессий на Mac mini см. лучшие практики headless CI на Mac mini через SSH; для долгоживущих SSH-сессий и кластера сборок — материал персистентные SSH-сессии и кластер Xcode 26 на удалённых Mac mini.
1. Что меняется в картине рисков
Cirrus CI исторически удобен для macOS job с прозрачными образами и YAML. При планируемой остановке сервиса к выбранной дате командам нужно зафиксировать новую «точку правды»: где живут образы, как считаются минуты, кто владеет связкой ключей и как вы отлаживаете «зелёно локально, красно в CI».
CircleCI macOS Fleet — это по сути управляемый пул исполнителей macOS в экосистеме CircleCI: вы покупаете параллелизм и минуты, получаете поддерживаемые стеки и меньше «снежинок» на диске. Самохостинговый runner на выделенном Mac — наоборот: вы несёте патчи, Xcode, симуляторы и диск, но получаете предсказуемое железо и полноценный SSH для triage.
2. Матрица: минуты · очередь · секреты · SSH
Используйте таблицу как раздаточный материал; точные тарифы и лимиты параллелизма уточняйте в актуальных прайсингах CircleCI и в договоре с поставщиком удалённого Mac.
| Измерение | CircleCI macOS Fleet | Эксклюзивный Mac + self-hosted GHA runner |
|---|---|---|
| Поминутная модель | Минуты macOS обычно дороже Linux; удобно для переменной нагрузки и прозрачного бюджета «столько, сколько отработали job». | Сам runner на своём Mac не снимает поминутку за исполнение как облачный GitHub-hosted label, но остаётся стоимость железа/аренды, сеть и время на сопровождение. |
| Очередь и SLA ожидания | Очередь зависит от купленного параллелизма и общей загрузки пула; в пик PR могут ждать слот. | Очередь определяется вашим числом job на машине; нет чужой многотенантной конкуренции, но один CPU всё равно сериализует тяжёлые xcodebuild. |
| Граница секретов и соответствие | Секреты и контексты CircleCI задают чёткую границу доверия к платформе; удобные ротации, но меньше произвольных файловых ACL. | Можно разнести пользователей launchd, keychain и каталоги артефактов под политику; радиус поражения шире, если один SSH-доступ обслуживает и релиз, и эксперименты. |
| Управляемость и SSH | SSH на «чужой» билдер ограничен политикой продукта; упор на логи, артефакты и воспроизводимые ветки. | Полный SSH для снятия логов, очистки DerivedData, проверки Simulator и состояния связки — сильная сторона при сложных падениях codesign/notarytool. |
3. Когда в первую очередь CircleCI macOS Fleet
- Нужно быстро перенести YAML-пайплайны и опереться на поддерживаемые образы без команды «железных» сисадминов.
- Нагрузка по минутам сильно гуляет по неделям, и финансы хотят оплаты по факту использования.
- Команда готова мириться с ограничениями интерактивной отладки ради меньшей операционной поверхности.
4. Когда в первую очередь эксклюзивный Mac и self-hosted runner
- Нужны долгоживущие кэши, фиксированная связка ключей или нестандартные корпоративные прокси/сертификаты.
- Поминутные списания на публичных macOS-исполнителях хронически бьют по бюджету при длинных UI-тестах.
- Инциденты требуют SSH-first triage и повторяемого состояния диска между ночными прогонами.
5. FAQ
В1: Обязательно ли уходить именно в GitHub Actions, если репозиторий уже на GitHub?
Нет. Но если триггеры, permissions и рынок плагинов уже завязаны на Actions, self-hosted runner на Mac часто даёт самый короткий путь по времени миграции при сохранении привычных workflow-файлов.
В2: Fleet всегда дешевле своего Mac?
Сравнивайте 4–8 недель фактических минут macOS × тариф против фиксированной аренды + часов DevOps. Длинные ретраи и «пустые» ожидания в очереди раздувают поминутку; простой своего Mac — скрытый фикс.
В3: Как не потерять границу секретов при SSH на билдер?
Разведите учётные записи CI и интерактивных разработчиков, ограничьте sudo, храните релизные ключи в отдельном keychain/секрет-хранилище и ведите журнал доступа; общий admin на одной машине для всего отдела почти всегда ошибка.
В4: Можно ли комбинировать Fleet и выделенный Mac?
Да: PR и линтеры на управляемом пуле, ночные тяжёлые матрицы и подпись — на выделенном узле. Следите, чтобы версии Xcode и набор симуляторов не расходились без явной матрицы образов.
В5: Что проверить в первую неделю после переключения?
Время ожидания в очереди, медиана длительности job, доля ретраев, рост артефактов на диске и совпадение checksum зависимостей между старым и новым CI.
Mac mini и macOS как фундамент для self-hosted runner
Когда вы переносите job с Cirrus на самохостинг, половина успеха — скрипты и кэш, половина — платформа: на Apple Silicon единая память снижает странные конкуренции между Xcode и несколькими Simulator, macOS даёт предсказуемый Unix-стек и нативный тулчейн без «докеризации всего», а энергопотребление Mac mini в простое остаётся очень низким — удобно для круглосуточного узла. По сравнению с типичным ПК на Windows, меньше сюрпризов от драйверов и EDR в headless-сценариях.
Если вы хотите закрепить миграцию на тихом, стабильном 24/7 железе с SSH и предсказуемой связкой ключей, Mac mini M4 — сильный баланс производительности и совокупной стоимости владения. Чтобы подобрать конфигурацию под вашу нагрузку CI, откройте главную SSHMac и сравните тарифы — это ускорит финальное решение после матрицы выше.