Infraestrutura de integração contínua para vários projetos iOS

13

Como desenvolvedor de iOS, estava procurando criar uma infraestrutura de CI e CCQ (= Qualidade de código contínua) para os projetos de iOS que temos em desenvolvimento até o momento. Já usamos Jenkins e SonarQube para quase todos os projetos Web e Android (usando um projeto VM foreach, a instalação e configuração do CI e do CCQ são automatizadas) e funciona muito bem. Mas para os projetos iOS, Jenkins precisa fazer a compilação em um computador executando o macOS, então não tenho certeza se tenho a solução perfeita para isso.

  • Eu estava procurando uma solução para virtualizar o macOS. Para cada projeto, crie um macOS virtual e instale o Jenkins como escravo lá para lidar com as compilações. A solução parecia perfeita, mas parece que não é legal ter mais de 2 VM em execução com o macOS (e, é claro, apenas no computador Mac) http://images.apple.com/legal/sla/docs/macOS1012.pdf -> O ponto 2.B. Portanto, essa não é uma solução para o meu caso.
  • Outra solução comum sobre a qual eu li é ter um computador Mac (talvez um MacMini) que lide com todas as compilações de todos os projetos. O que você acha dessa implementação? Com quantos projetos ele pode lidar? Os desenvolvedores podem precisar fazer algumas configurações em seu próprio projeto (especialmente no SonarQube), é seguro?
  • Podemos ter várias instâncias Jenkins e SonarQube na mesma máquina, usando portas diferentes? É mesmo uma solução a ser considerada ou estou falando sem sentido?
  • Existe alguma outra solução viável, talvez melhor do que as acima :)?

Nota: Não adoro a dupla Jenkins + SonarQube. Se houver outras ferramentas mais adequadas para o desenvolvimento do iOS, compartilhe-as comigo.

Dan Bodnar
fonte
@ Pierre.Vriens: é a qualidade do código contínuo. Não tenho certeza se esse é um termo geralmente usado ou apenas o SonarQube o usa. :)
Dan Bodnar

Respostas:

10

Existe alguma outra solução viável, talvez melhor do que as acima :)?

Para Jenkins, provavelmente não, devido aos problemas de licença que você mencionou (é necessário executar o macOS no hardware da marca Apple). Se você pode trabalhar com isso, é definitivamente uma solução.

Caso contrário, sugiro que você verifique se há um sistema de integração contínua hospedado no iOS em que não precise lidar com o hardware / licenciamento da Apple, o serviço o gerenciará para você, por exemplo, https: //www.bitrise. io

Também existem serviços onde você pode alugar a Apple hw e configurá-la da maneira que quiser, https://www.macstadium.com é um deles (provavelmente o maior).

Viktor Benei
fonte
1
Obrigado pela resposta. Ainda estou procurando uma solução. Eu acho que um MiniMac é o caminho a percorrer por enquanto.
precisa
2

Eu acho que você também pode olhar para a nova virtualização leve do macOS, chamada Anka . O Anka Build pode possibilitar a configuração de uma infraestrutura virtualizada no hardware da Apple e permitir o provisionamento do macOS Vms sob demanda da Jenkins.

Manisha
fonte