Infrastruttura di integrazione continua per più progetti iOS


13

Come sviluppatore iOS, stavo cercando di creare un'infrastruttura CI e CCQ (= qualità del codice continuo) per i progetti iOS che abbiamo sviluppato finora. Utilizziamo già Jenkins e SonarQube per quasi tutti i progetti Web e Android (l'utilizzo di un progetto VM foreach, l'installazione e la configurazione di CI e CCQ è automatizzato) e funziona alla grande. Ma per i progetti iOS, Jenkins deve fare la build su un computer che esegue macOS, quindi non sono sicuro di avere la soluzione perfetta per questo.

  • Stavo cercando una soluzione per virtualizzare macOS. Per ogni progetto, creare un macOS virtuale e installare Jenkins come slave lì per gestire le build. La soluzione sembrava perfetta, ma sembra che non sia legale avere più di 2 VM in esecuzione con macOS (e, ovviamente, solo su computer Mac) http://images.apple.com/legal/sla/docs/macOS1012.pdf -> Il punto 2.B. Quindi questa non è una soluzione per il mio caso.
  • Un'altra soluzione comune di cui ho letto è avere un computer Mac (forse un MacMini) che gestirà tutte le build per tutti i progetti. Cosa ne pensi di questa implementazione? Quanti progetti può gestire? Gli sviluppatori potrebbero dover eseguire alcune configurazioni sul proprio progetto (specialmente in SonarQube), è sicuro?
  • Possiamo avere più istanze Jenkins e SonarQube sulla stessa macchina, usando porte diverse? È forse una soluzione da prendere in considerazione o sto parlando senza senso?
  • C'è qualche altra soluzione praticabile, forse migliore di quelle sopra :)?

Nota: non mi attengo a Jenkins + SonarQube duo, se ci sono altri strumenti più adatti allo sviluppo di iOS, condivideteli con me.


@ Pierre.Vriens: è la qualità del codice continuo. Non sono sicuro che si tratti di un termine generalmente utilizzato o utilizzato solo da SonarQube. :)
Dan Bodnar il

Risposte:


10

C'è qualche altra soluzione praticabile, forse migliore di quelle sopra :)?

Probabilmente no per Jenkins, a causa dei problemi di licenza che hai citato (devi eseguire macOS su hardware con marchio Apple). Se riesci a lavorarci, allora è sicuramente una soluzione.

In caso contrario, ti suggerirei di verificare la presenza di un sistema di integrazione continua iOS ospitato in cui non devi occuparti dell'hardware / licenza Apple, il servizio lo gestirà per te, ad esempio https: //www.bitrise. io

Ci sono anche servizi in cui puoi noleggiare Apple hw e puoi configurarlo come preferisci, https://www.macstadium.com è uno di questi (probabilmente il più grande).


1
Grazie per la risposta. Sto ancora cercando una soluzione. Penso che un MiniMac sia la strada da percorrere per ora.
Dan Bodnar,

2

Penso che puoi anche guardare alla nuova virtualizzazione leggera per macOS chiamata Anka . Anka Build può rendere possibile la configurazione di un'infrastruttura virtualizzata sull'hardware Apple e consentire il provisioning di macOS Vms su richiesta da Jenkins.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.