Инфраструктура непрерывной интеграции для нескольких проектов iOS

13

Как разработчик iOS, я хотел создать инфраструктуру CI и CCQ (= Continuous Code Quality) для проектов iOS, которые мы разрабатываем до сих пор. Мы уже используем Jenkins и SonarQube почти для всех проектов Web и Android (с использованием проекта VM foreach, автоматическая установка и настройка CI и CCQ), и это прекрасно работает. Но для проектов iOS, Дженкинс должен сделать сборку на компьютере под управлением MacOS, поэтому я не уверен, что у меня есть идеальное решение для этого.

  • Я искал решение для виртуализации MacOS. Для каждого проекта создать виртуальную macOS и установить Jenkins в качестве подчиненного для обработки сборок. Решение выглядело идеально, но, по-видимому, незаконно иметь более 2 ВМ, работающих с macOS (и, конечно, только на компьютере Mac) http://images.apple.com/legal/sla/docs/macOS1012.pdf -> Точка 2.Б. Так что это не решение для моего случая.
  • Другое распространенное решение, о котором я читал, - это наличие компьютера Mac (возможно, MacMini), который будет обрабатывать все сборки для всех проектов. Что вы думаете об этой реализации? Сколько проектов он может обработать? Разработчикам может потребоваться выполнить некоторые настройки в своем собственном проекте (особенно в SonarQube), это безопасно?
  • Можем ли мы иметь несколько экземпляров Jenkins и SonarQube на одной машине, используя разные порты? Это даже решение, которое нужно рассмотреть, или я говорю бессмысленно?
  • Есть ли другое жизнеспособное решение, может быть, лучше, чем те, что указаны выше :)?

Примечание: я не привязан к дуэту Jenkins + SonarQube, если есть другие инструменты, более подходящие для разработки под iOS, пожалуйста, поделитесь ими со мной.

Дэн Боднар
источник
@ Pierre.Vriens: это непрерывное качество кода. Я не уверен, является ли это общепринятым термином, или просто SonarQube использует его. :)
Дан Боднар

Ответы:

10

Есть ли другое жизнеспособное решение, может быть, лучше, чем те, что указаны выше :)?

Для Jenkins, вероятно, нет, из-за упомянутых вами проблем с лицензией (вы должны запустить macOS на оборудовании Apple). Если вы можете работать с этим, то это определенно решение.

Если нет, то я бы посоветовал вам проверить хост-систему непрерывной интеграции iOS, где вам не нужно иметь дело с аппаратным обеспечением / лицензированием Apple, сервис будет управлять вами, например, https: //www.bitrise. И.О.

Есть также сервисы, где вы можете арендовать Apple hw, и вы можете настроить его так, как вам нравится, https://www.macstadium.com - один из них (возможно, самый большой).

Виктор Беней
источник
1
Спасибо за ответ. Я все еще ищу решение. Я думаю, что MiniMac - это путь на данный момент.
Дан Боднар
2

Я думаю, вы также можете взглянуть на новую легковесную виртуализацию для macOS под названием Anka . Anka Build может предоставить вам возможность настроить виртуальную инфраструктуру на оборудовании Apple и позволит вам предоставлять macOS Vms по запросу от Jenkins.

Маниша
источник