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.
- Votre avis sur Jenkins?
- 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.)?
Réponses:
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
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.
la source
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.
la source
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.
la source