Integrazione continua (con progetti iOS e Android) [chiuso]


10

Sto cercando di apportare alcune modifiche positive alla mia azienda e una di queste è l'implementazione dell'integrazione continua. Facciamo sviluppo mobile (iOS / Android) quindi ho bisogno di un elemento della configurazione che supporti entrambi i tipi di progetti. Come puoi dire, non ne so molto di CI, ma ho cercato su Google un po 'e penso che Jenkins e Hudson siano i due più popolari.

Ho due domande.

  1. Il tuo pensiero su Jenkins?
  2. C'è un modo per CI di verificare se il progetto si sta compilando secondo gli
    standard di codifica (come accoppiamento libero e così via)?

3
"Jenkins e Hudson sono i due" ... hmm sei consapevole che Jenkins è il nuovo nome di Hudson ?
moscerino il

1
Davvero non lo sapevo! Come ho detto, sono davvero nuovo di CI e ho 0 esperienze. Soooo .. J&H stessa cosa ..
Suppongo

C'è anche Team City, Cruise Control e altri.
Kyle Hodgson,

@gnat: beh, penso che Jenkins sia una forchetta di Hudson. Penso che hudson sia ancora là fuori: hudson-ci.org gestito da Oracle. Jenkins è un ottimo fork che per la maggior parte delle persone è migrato. Scusa se sbaglio ...
dbalakirev il

Risposte:


9

Innanzitutto potresti voler dare un'occhiata a TeamCity come un'altra opzione per il tuo server.

Dal mio punto di vista (anche se ho un po 'meno esperienza con Jenkins che con TeamCity) entrambi sono strumenti eccellenti e molto capaci - sarei felice in un ambiente usando entrambi.

Ok, per arrivare alla carne del problema, ad es

C'è un modo per CI di verificare se il progetto si sta compilando secondo gli standard di codifica (come accoppiamento libero e così via)?

Al livello più fondamentale, tutto ciò che fa un server CI è eseguire uno script e quindi interpretare e presentare i risultati dell'esecuzione di quello script - quindi se puoi copiarlo, probabilmente il tuo server CI può eseguirlo e se puoi formattare l'output in modo appropriato allora il server CI probabilmente può interpretare e riferire sul risultato.

Naturalmente i principali server di generazione sono già in grado di parlare con / integrazione con un sacco di strumenti popolari - in modo davvero la questione diventa quello utensili stai usando per controllare i standard di codifica e lo fa che si integrano con la vostra scelta di server di CI.

Sì, il server CI offre molto di più al gioco in termini di automazione rispetto alla semplice esecuzione di uno script, ma alla fine è quello che sta facendo.


Giusto per essere chiari - so che un server di build fa molto di più che eseguire solo script, è l'automazione del processo (e in particolare l'integrazione con (D) VCS) che aggiunge valore - ma nel rispondere a "cosa devo fare per un server di compilazione "domanda la risposta è" un server e uno script "tutto il resto scorre da lì.


Ho usato TeamCity abbastanza bene come mio server CI per iOS. Immagino che sia un gioco da ragazzi usarlo per Android
sylvanaar

5

Secondo la raccomandazione di TeamCity: è un ottimo prodotto. Non posso parlare con Android perché non ho tempo a sedere lì, ma ho avuto con successo progetti iOS in esecuzione in CI grazie a due articoli ( 1 2 ).

Le parti più difficili hanno davvero avuto a che fare con il mac per eseguire la build automatizzata con il portachiavi adeguato e così da poter creare un'app firmata da distribuire su un iDevice piuttosto che su un'opzione di solo emulatore.


È possibile installare TeamCity sul server Linux e poi farlo gestire i progetti iOS?
pa

1
TeamCity non importa, è l'agente di costruzione. E per iOS dovrai distribuire su un Mac. Solo ha la toolchain. Probabilmente puoi fare alcune cose usando GNUStep ma il mio sospetto è che ti divertiresti abbastanza frustrante con qualcosa di non banale.
Wyatt Barnett,

2

Ho impostato il server di build e gli script della nostra azienda prima di utilizzare Jenkins in cui sviluppiamo app iOS. Come molti hanno detto, il server CI è piuttosto semplice e mi piace Jenkins perché è gratuito / open source e ha molti plugin come la pubblicazione di rapporti di copertura o l'integrazione di github.

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.