Intégration continue (avec des projets iOS et Android) [fermé]

10

J'essaie d'apporter des changements positifs dans mon entreprise et l'un des changements est la mise en œuvre d'une intégration continue. Nous faisons du développement mobile (iOS / Android) donc j'ai besoin d'un CI qui supporte les deux types de projets. Comme vous pouvez le voir, je ne sais pas grand-chose sur CI, mais j'ai un peu googlé et je pense que Jenkins et Hudson sont les deux plus populaires.

J'ai deux questions en deux parties.

  1. Votre avis sur Jenkins?
  2. Existe-t-il un moyen pour CI de vérifier si le projet est
    conforme aux normes de codage (comme le couplage lâche, etc.)?
paxx
la source
3
"Jenkins et Hudson sont les deux" ... hmm savez-vous que Jenkins est le nouveau nom de l' Hudson ?
moucher
1
Je ne savais vraiment pas ça! Comme je l'ai dit, je suis vraiment nouveau à CI et je n'ai aucune expérience. Soooo .. J & H même chose .. Je suppose que cela restreint mes options :)
paxx
Il y a aussi Team City, Cruise Control et autres.
Kyle Hodgson
@gnat: eh bien je pense que jenkins est un fork d'Hudson. Je pense que hudson est toujours là: hudson-ci.org géré par Oracle. Jenkins est une très bonne fourchette qui a migré pour la plupart des gens. Désolé si je me trompe ...
dbalakirev

Réponses:

9

Tout d'abord, vous voudrez peut-être regarder TeamCity comme une autre option pour votre serveur.

À mon avis (même si j'ai un peu moins d'expérience avec Jenkins qu'avec TeamCity), les deux sont d'excellents outils et très capables - je serais heureux dans un environnement utilisant l'un ou l'autre.

Ok, pour arriver à la chair du problème c'est à dire

Existe-t-il un moyen pour CI de vérifier si le projet est conforme aux normes de codage (comme un couplage lâche, etc.)?

Au niveau le plus fondamental, tout ce qu'un serveur CI fait est d'exécuter un script, puis d'interpréter et de présenter les résultats de l'exécution de ce script - donc si vous pouvez l'écrire, votre serveur CI peut probablement l'exécuter et si vous pouvez formater la sortie de manière appropriée, alors le serveur CI peut probablement interpréter et rendre compte du résultat.

Bien sûr, les principaux serveurs de build sont déjà capables de communiquer avec / d'intégrer de nombreux outils populaires - donc la question devient vraiment quel outillage utilisez-vous pour vérifier vos normes de codage et cela s'intègre-t-il avec votre choix de serveur CI.

Oui, le serveur CI apporte beaucoup plus au jeu en termes d'automatisation que de simplement exécuter un script sans réfléchir - mais en fin de compte, c'est ce qu'il fait.


Juste pour être clair - je sais qu'un serveur de build fait plus que simplement exécuter des scripts, c'est l'automatisation du processus (et en particulier l'intégration avec (D) VCS) qui ajoute de la valeur - mais en répondant au "de quoi ai-je besoin pour un serveur de build "question la réponse est" un serveur et un script "tout le reste en découle.

Murph
la source
J'ai utilisé TeamCity avec succès comme serveur CI pour iOS. J'imagine que c'est une évidence de l'utiliser pour Android
sylvanaar
5

J'appuie la recommandation TeamCity - c'est un excellent produit. Je ne peux pas parler à Android car je n'ai pas de temps de siège là-bas, mais j'ai réussi à exécuter des projets iOS dans CI grâce à deux articles ( 1 2 ).

Les parties les plus délicates devaient vraiment faire en sorte que le mac exécute la construction automatisée avec le trousseau approprié et ainsi vous pouvez créer une application signée que vous pourriez déployer sur un iDevice plutôt qu'une option uniquement émulateur.

Wyatt Barnett
la source
Est-il possible d'installer TeamCity sur un serveur Linux et de le faire gérer des projets iOS?
paxx
1
TeamCity n'a pas d'importance, c'est l'agent de construction. Et pour iOS, vous devrez déployer sur un Mac. Seulement, il a la chaîne d'outils. Vous pouvez probablement faire des choses en utilisant GNUStep, mais je soupçonne que vous passeriez un moment assez frustrant avec quelque chose de non trivial.
Wyatt Barnett
2

J'ai configuré le serveur de construction et les scripts de notre entreprise avant d'utiliser Jenkins où nous développons des applications iOS. Comme beaucoup l'ont dit, le serveur CI est assez simple et j'aime Jenkins car il est gratuit / open source et possède de nombreux plugins comme la publication de rapports de couverture ou l'intégration de github.

Timothy Chen
la source