Question

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

Je vais probablement essayer Cruise Control. Je posterai une réponse avec mes conclusions.

Était-ce utile?

La solution

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

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

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

Le travail en amont a porté ses fruits car mes versions fonctionnent sans aucune pensée supplémentaire. J'ai écrit une description détaillée sur mon blog si cela vous intéresse.

La distribution d'applications iPhone facilitée

Autres conseils

Réanimation de ce fil. Je n'ai pas trouvé de solution satisfaisante pour obtenir des versions XCode automatisées avec des tests unitaires sur un serveur de génération. J'ai donc effectué des recherches et codé. Le résultat est cet article de blog qui explique tout et ce script Ruby qui convertit la sortie OCUnit de xcodebuild au format XML utilisé par JUnit pour les rapports de test . Le serveur de construction que j'ai choisi était Hudson .

Mise à jour 3/2 2012: j'ai mis à jour cette fonctionnalité afin d'utiliser des scripts de shell personnalisés pour la construction et l'exécution. disponible ici . C'est bon non seulement pour l'intégration continue, mais aussi pour construire à partir d'une ligne de commande sur votre propre machine.

Adium utilise buildbot avec Xcode avec beaucoup d'efficacité. Nous avons écrit un makefile simple qui appelle xcodebuild avec les cibles et les configurations appropriées, mais je suis presque sûr que c'est optionnel.

Apple vient de publier (le 10 juin 2013) pour OSX Mavericks (OS X 10.9) une nouvelle plate-forme d'intégration continue qui constitue la solution d'intégration continue la plus intégrée que j'ai jamais vue auparavant. Il est disponible à l'adresse developer.apple.com. Les détails de cette page sont les suivants:

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

Je recommande de voir la présentation de wwdc 2013 sur le sujet.

J'ai utilisé CruiseControl avec Xcode (à l'instar de ce que suggère Pragmatic Automation) et j'ai eu un succès raisonnable. Je connais aussi très bien CruiseControl et sa configuration de format de configuration relativement horrible.

J'ai également utilisé BuildBot à bon escient, mais j'ai constaté que ses atouts ne correspondaient pas vraiment à mes besoins (création d'esclaves distribués et génération de rapports sur plusieurs systèmes différents). Configurer les configurations de buildbot peut être un art en soi, bien que ce ne soit pas difficile. Il s’agit essentiellement d’écrire des scripts en python.

Depuis que Hudson est disponible, je le recommanderais comme une avenue pour une intégration continue. Il possède une interface Web (le principal défaut de CruiseControl dans mon esprit) et est très flexible dans les divers systèmes qu’il prend en charge. Vous pouvez invoquer des constructions pilotées par ligne de commande assez facilement et de manière très évidente. Cela dit, je n’ai pas configuré d’instance utilisant Hudson et Xcode, contrairement aux autres systèmes. C’est donc en partie une spéculation de ma part.

Je pense que vous devriez toujours pouvoir utiliser Hudson. Hudson est très flexible et vous permet également d’utiliser des scripts de shell pour la construction: "nofollow noreferrer"> Scripts Shell et commandes de lot Windows

Il suffit d’y entrer xcodebuild. Consultez la page de manuel xcodebuild pour voir les options de xcodebuild.

Si cela ne vous dérange pas de vivre à la pointe de la technologie, je viens de valider un constructeur xcode pour CruiseControl.

Jenkins semble bien fonctionner pour certaines personnes. (Bien que je n’aie jamais utilisé de serveur CI auparavant.)

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

Jenkins fonctionne bien. Vous pouvez soit construire votre projet xcode en écrivant votre propre script shell, puis laisser Jenkins l'exécuter, ou vous pouvez également utiliser le plugin xcode.

Mais vous devez être conscient du problème de l'autorité. Avec de petites modifications dans les configurations Jenkins, vous pourrez gérer votre serveur CI en très peu de temps.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top