56 votes

L'intégration continue pour les projets Xcode ?

Après avoir utilisé Hudson pour l'intégration continue dans un projet précédent, je souhaite mettre en place un serveur d'intégration continue pour les projets iPhone sur lesquels je travaille actuellement. Après quelques recherches, il semble qu'il n'y ait pas de moteur d'intégration continue conçu spécifiquement pour Xcode, mais un gars a eu du succès en utilisant Cruise Control combiné à l'outil CLI xcodebuild . Quelqu'un a-t-il essayé cela ? Existe-t-il des moteurs de CI qui fonctionnent bien avec les projets Xcode ?

Je vais probablement essayer le régulateur de vitesse. Je posterai une réponse avec mes résultats.

37voto

Silentcode Points 376

J'utilise avec succès Hudson sur mac avec xcodebuild. Avec la sortie de la version 3.0 du sdk iPhone, vous avez un contrôle total sur la cible, la configuration et le sdk sur lequel le projet doit être construit.

C'est aussi simple que de créer une étape de construction dans hudson et de dire à xcodebuild de construire le projet :

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

Le travail en amont s'est avéré payant pour moi, car mes constructions fonctionnent sans aucune réflexion supplémentaire. J'ai écrit une description détaillée sur mon blog si cela intéresse quelqu'un.

La distribution d'applications iPhone facilitée

13voto

Ciryon Points 1103

Je ressuscite ce fil de discussion. Je n'ai pas trouvé de solution satisfaisante pour obtenir des builds XCode automatisés avec des tests unitaires sur un serveur de build, alors j'ai fait quelques recherches et j'ai codé. Le résultat est cet article de blog expliquant tout et ce script de Ruby qui convertit la sortie OCUnit de xcodebuild au format XML que JUnit utilise pour les rapports de test. Le serveur de compilation que j'ai choisi est Hudson .

Mise à jour 3/2 2012 : J'ai mis à jour ceci pour utiliser des scripts shell scripts personnalisés pour la construction et l'exécution. Disponible aquí . C'est bon non seulement pour l'intégration continue, mais aussi pour construire à partir de la ligne de commande sur votre propre machine.

9voto

Colin Barrett Points 3581

Adium utilise buildbot avec Xcode de manière très efficace. Nous avons écrit un simple makefile qui appelle xcodebuild avec les bonnes cibles et configurations, mais je suis presque sûr que c'est optionnel.

9voto

Rafael Gorski Points 673

Apple vient de sortir (10 juin 2013) pour OSX Mavericks (OS X 10.9) une nouvelle plateforme d'intégration continue qui est la solution d'intégration continue la plus intégrée que j'ai vue jusqu'à présent. Elle est disponible sur developer.apple.com, cette page en donne les détails :

https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/xcode_guide-continuous_integration/

Je vous recommande de consulter la présentation du wwdc 2013 sur le sujet.

8voto

heckj Points 3088

J'ai utilisé CruiseControl avec Xcode (similaire à ce que Pragmatic Automation a suggéré) et j'ai eu un succès raisonnable. Je suis également très familier avec CruiseControl et son format de configuration relativement horrible.

J'ai également utilisé BuildBot à bon escient, mais j'ai trouvé que ses points forts ne correspondaient pas vraiment à mes besoins (construction d'esclaves distribués et rapports sur plusieurs systèmes différents). La configuration de BuildBot peut être un art en soi, même si ce n'est pas difficile. Il s'agit essentiellement d'écrire des scripts en python.

Depuis que Hudson est disponible, je le recommande pour l'intégration continue. Il dispose d'une interface web (le principal défaut de CruiseControl à mon avis) et est très flexible dans les différents systèmes qu'il supporte. Vous pouvez invoquer des constructions en ligne de commande assez facilement et de manière très évidente. Cela dit, je n'ai pas mis en place d'instance utilisant Hudson et Xcode, comme je l'ai fait pour les autres systèmes, donc il s'agit en partie d'une spéculation de ma part.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X