2009-07-24 14 views
12

il mio team sta attualmente utilizzando buildbot per automatizzare le build durante la notte e l'integrazione continua ei test di regressione. Per build e unit test, il builder richiama semplicemente uno script che sincronizza i sorgenti da p4 e quindi esegue xcodebuild. I test di regressione sono anche lanciati da uno script di shell e sono essi stessi combinazioni di script di shell e AppleScript. Le build sono tutte eseguite su un sistema, ma i test di buildbot trigger avvengono su più Mac, con diverse architetture e combinazioni di sistemi operativi. Le cose che mi piacciono di buildbot sono i trigger automatici (quindi i test vengono eseguiti solo se e quando la compilazione ha esito positivo) e il reporting include la visualizzazione a cascata per vedere lo stato generale.Quale sistema di build automatizzato usano gli sviluppatori Mac?

Tuttavia, vedo anche un certo numero di problemi. Il processo "master" che coordina le build è o perde o ha solo un enorme set di lavoro che significa che consuma un paio di gigabyte di memoria. Occasionalmente i problemi di rete significano che uno schiavo verrà perso; piuttosto che riprovare più tardi, fallirà la costruzione. Infatti, se si suppone che lo slave venga attivato per una build dipendente, fallirà la prima build dopo che è stata completata con successo.

Quindi, quali sono gli altri che useranno per automatizzare le build Xcode e le unit test? Come funzionano queste soluzioni? Qualcosa che consiglieresti?

+0

Potrebbe essere utile rendere questo Wiki della comunità come suo parere – AutomatedTester

+2

non credo - sto chiedendo paragoni tecnici di varie soluzioni, non quale webcomic è il tuo preferito. –

risposta

5

Io uso TeamCity in un ambiente Windows ma credo che funzionerà su Mac e ha agenti di generazione xcode.

Un'altra domanda simile here.

4

Il nostro team utilizza Hudson con uno script che converte l'output di Unit Test da XCode in formato NUnit.

1

Abbiamo elaborato l'utilizzo di tutta la memoria: file di registro: il vecchio buildbot conserva tutti i registri per sempre e li conserva in memoria (probabilmente fino al riavvio).

Il buildbot più recente può essere configurato per mantenere una quantità fissa di cronologia.

I file di registro buildbot devono essere di dimensioni limitate per evitare il problema.

+0

Questo va bene :-) Penso che la memoria sia il problema principale, la disponibilità degli schiavi è fastidiosa, ma può essere risolta con una rete decente. –

1

Io uso il XcodeBuilder che fa parte di CruiseControl. Certo che aiuta che l'abbia scritto. :)

Ma l'ho usato su un vero progetto a più persone per un'app per iPhone (Surf) in vendita nell'app store.

2

So che questa è una domanda precedente, ma per chi utilizza TFS per tenere i propri progetti Xcode, ho creato un'attività di creazione personalizzata per rendere più semplice l'automazione delle build Xcode tramite TFS. Il codice è ospitato su Codeplex qui: http://tfsxcodebuild.codeplex.com/.

Spero che qualcuno lo trovi utile!

0

Ora che sono passati tre anni ho la mia risposta da dare a questa domanda. Sto usando Jenkins, principalmente per i plug-in che fornisce. Ha un plug-in per costruire obiettivi in ​​progetti Xcode (o schemi in spazi di lavoro). C'è un plug-in per eseguire lo Clang static analyzer. Si interfaccia con il mio sistema bug-tracker, spingerà automaticamente anche le build su Testflight.