Domanda

Dopo aver usato Hudson per l'integrazione continua con un progetto precedente, voglio creare un server di integrazione continua per i progetti iPhone su cui sto lavorando ora. Dopo aver fatto qualche ricerca sembra che non ci siano motori CI progettati appositamente per Xcode, ma un ragazzo ha avuto successo utilizzando Cruise Control combinato con lo strumento CLI xcodebuild . Qualcuno qui ha provato questo? Esistono motori CI che funzionano bene con i progetti Xcode?

Probabilmente ho intenzione di provare Cruise Control. Invierò una risposta con i miei risultati.

È stato utile?

Soluzione

Sto usando con successo Hudson sul Mac con xcodebuild. Con il rilascio di sdk per iPhone 3.0 hai il controllo competitivo su target, configurazione e sdk su cui il progetto deve essere costruito.

È semplice come creare un passaggio di compilazione in hudson e dire a xcodebuild di costruire il progetto:

xcodebuild -target "myAppAppStore" -configuration "DistributionAppStore" -sdk iphoneos2.1

Il lavoro iniziale è stato ripagato da me dato che le mie build funzionano senza alcun pensiero aggiuntivo. Ho scritto una descrizione dettagliata sul mio blog se qualcuno è interessato.

Distribuzione delle app per iPhone semplificata

Altri suggerimenti

Risurrezione di questo thread. Non ho trovato una soluzione soddisfacente per ottenere build XCode automatizzate con unit test su un server di build, quindi ho svolto alcune ricerche e codifica. Il risultato è questo post sul blog che spiega tutto e questo script Ruby che converte l'output OCUnit da xcodebuild nel formato XML che JUnit utilizza per i rapporti di prova . Il server di build che ho scelto era Hudson .

Aggiornamento 3/2 2012: ho aggiornato questo per utilizzare alcuni script shell personalizzati per la costruzione e l'esecuzione. Disponibile qui . È utile non solo per l'integrazione continua, ma anche per la creazione dalla riga di comando sul proprio computer.

Adium utilizza buildbot con Xcode in modo abbastanza efficace. Abbiamo scritto un semplice makefile che chiama xcodebuild con i target e le configurazioni corretti, ma sono abbastanza sicuro che sia facoltativo.

Apple ha appena rilasciato (10 giugno 2013) per OSX Mavericks (OS X 10.9) una nuova piattaforma di integrazione continua che è la soluzione di integrazione continua più integrata che abbia mai visto prima. È disponibile da developer.apple.com, qui in questa pagina sono disponibili i dettagli:

https://developer.apple.com/library / ios / documentazione / IDE / concettuale / xcode_guide-continuous_integration /

Consiglio di vedere la presentazione di wwdc 2013 sull'argomento.

Ho usato CruiseControl con Xcode (simile a quello suggerito da Pragmatic Automation) e ho avuto un successo ragionevole. Conosco anche CruiseControl ed è un'impostazione relativamente orribile del formato di configurazione.

Ho anche usato BuildBot per ottenere buoni risultati, ma ho scoperto che i suoi punti di forza non corrispondevano davvero alle mie esigenze (costruzione e reportistica degli schiavi distribuiti su più sistemi diversi). Configurare le configurazioni di buildbot può essere un'arte in sé e per sé, sebbene non sia difficile. In sostanza, tutto sta scrivendo script in Python.

Da quando Hudson è diventato disponibile, lo consiglierei come via per l'esecuzione di un'integrazione continua. Ha un'interfaccia basata sul web (la mancanza principale di CruiseControl nella mia mente) ed è molto flessibile nei vari sistemi che supporta. Puoi invocare build guidate da riga di comando abbastanza facilmente e molto ovviamente. Detto questo, non ho impostato un'istanza utilizzando Hudson e Xcode, come ho fatto per gli altri sistemi, quindi questa è in parte una speculazione da parte mia.

Penso che dovresti essere ancora in grado di usare Hudson. Hudson è molto flessibile e consente anche di utilizzare script di shell per la costruzione: Script shell e comandi batch di Windows

Basta inserire lì xcodebuild. Dai un'occhiata alla pagina man di xcodebuild per vedere le opzioni di xcodebuild.

Se non ti dispiace vivere all'avanguardia, ho appena commesso un xcode builder per CruiseControl.

Jenkins sembra funzionare bene per alcune persone. (Anche se non ho mai usato nessun server CI prima.)

https://wiki.jenkins-ci.org/display/JENKINS/ Xcode + Plugin

Jenkins funziona bene. Puoi creare il tuo progetto xcode scrivendo il tuo script shell e poi lasciarlo eseguire da Jenkins, oppure puoi anche usare il plugin xcode.

Ma devi essere consapevole del problema dell'autorità. Con piccole modifiche nelle configurazioni di Jenkins, sarai in grado di gestire il tuo server CI in pochissimo tempo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top