Je construis un serveur CI et j'apprécierais vraiment d'obtenir de véritables expériences et une vue d'ensemble sur ce que les gens utilisent. p>
Alors, quels sont vos processus de construction? Y a-t-il quelque chose comme: p>
Et aussi, qu'est-ce que votre processus complet de construction utilise? Utilisez-vous quelque chose comme: p>
Partager! ;) p>
8 Réponses :
Pour Java, nous avons une instance de Hudson Vérification des commits dans le SVN référentiel, pour chaque commit, il existe une construction dans laquelle tout est compilé et que toutes les unités de test sont exécutées à l'aide de Maven2 . Aussi, l'Hudson est connecté à une instance de Sonar qui nous indique des statistiques sur le style de codage et la couverture des tests. p>
Sweet :) P>
Connaissez-vous grossièrement le nombre de commits par jour?
Dans mon cas (un système de CB conçu / prise en charge / prise en charge interne), vous engage à la VCS dans l'arborescence ciblée par une configuration CB donnée en file d'attente automatiquement une demande CB (plusieurs demandes arrivant pendant qu'un CB est en cours d'exécution. un, qui fonctionnera dès que le processus actuel de CB est effectué). P>
Chaque instance CB répond à une demande CB en effectuant les étapes de construction et de test, elle est configurée pour le faire (les exploiter parallèlement à un "nuage" de serveurs distribués partagés par tous les instruments CB), enregistrant les résultats de la construction et des tests, et occasionnellement (pas plus souvent qu'une fréquence configurée) lançant des "tests lourds" (qui peuvent fonctionner pendant très longtemps et ne bloqueront pas les demandes de CB à venir - les tests lourds sont complètement forcés, bien que les journaux le rendent très clairs quelle construction ils ont couru). p>
"synchronisée à la tête" (cette "tête" serait "coffre" dans d'autres VCS ;-), pour les dépendances qui ne font pas partie de l'arbre suivi par un CB, peuvent arriver à chaque fois (ceux-ci seraient légers, non -Production - Constructions critiques ou expérimentales), ou uniquement sur des demandes d'intégration très explicites (c'est l'autre extrême, pour les "branches de libération" pour les constructions / projets qui sont critiques de production) ou avec une tolérance intermédiaire. P>
Pas le sommet de la pratique de l'ingénierie de la libération, je pense, mais dans sa gamme d'options, il fonctionne bien pour nous, pour une grande variété de projets de criticité très diverses, dépendance-lourdement, etc. -). P >
sur mon projet précédent, nous avons eu deux serveurs Luntbuild plus un serveur SVN. P>
La première machine à luntbuild a été utilisée pour la construction du projet - des tests d'unité incrémentiels + par commit, puis nettoyez les tests d'unité + de la construction + de l'installation complète d'installations pendant la nuit. P>
La deuxième machine de luntbuild a été utilisée comme une plate-forme de test pour des tests d'intégration. Dès que la première machine a terminé la construction de l'installation nocturne, il choisirait cela, le déploiement sur lui-même et l'exécution de la suite de tests d'intégration (pilote basé sur la junit d'interface graphique), donc chaque matin des ingénieurs d'essais obtiendraient une installation avec Un rapport d'un chèque de santé mentale afin qu'ils puissent décider s'ils veulent prendre la nouvelle construction ou non. P>
Nous utilisons Cruisecontrol.net comme serveur CI en combinaison avec Nant. La plupart des constructions (nous avons environ 30 constructions) sont déclenchées sur des changements. Certaines constructions lourdes moins importantes ne sont déclenchées qu'une fois chaque nuit, cela va également pour les constructions de maintenance qui nettoient la plupart des constructions normales. P>
Pour notre code C / C ++ Construit, nous utilisons un système de construction propriétaire capable de distribuer des constructions de code à chaque machine disponible dans la société (comme incrédibuild, mais beaucoup plus flexible). Pour notre C # construit, nous appelons directement devenv.com, mais nous utilisons Nunit pour exécuter les tests de l'unité. Nos tests unitaires C ++ utilisent notre propre cadre, les exécutant des résultats dans XML ressemblant à celui de Nunit. Pour certains chèques de code supplémentaires, nous courons PCLINT chaque nuit. Pour l'instant, aucune couverture de code n'est encore effectuée, qui est un peu dommage. P>
Nous utilisons également le système pour préparer la construction de la finale de notre produit. C'est juste la première étape, il a toujours besoin d'actions manuelles après. P>
Nous avions une conversation similaire au plus récent CITCON Amérique du Nord (Conférence continue d'intégration et d'essai) Où nous avons tous partagé nos expériences et essayé de rassembler une feuille de route de Simple CI à très construit Systèmes de CI et de libération. P>
Les notes de conférence d'origine sont ICI . Avec un flickr Photostream . Un Version nettoyée est disponible à la Blog Urbancode aussi. p>
Les Australiens ont revisité le sujet sur CitCon Brisbane et un Pencast de cette est disponible p>
J'espère que certaines de ces ressources sont utiles. p>
Processus de construction - Nous avons 4 branches actuellement actives d'une grande base de code que nous exécutons des constructions pour continuellement. Pour chaque branche, nous avons les constructions décomposées en deux étapes: p>
Notre processus de construction est coordonné par Zed Builds and Bugs et inclut la fourmi, faire, Maven, Junit, Findbugs, scripts Shell (historiques), en face de Windows, Linux, Aix, HP et Solaris. P>
Nous sommes actuellement en train d'inclure plus de retouches de tendances historiques et de statistiques afin que nous puissions voir à partir d'un niveau supérieur à la manière dont le processus de développement se déroule. P>
Jenkin est le meilleur outil d'intégration continue (CI). CI n'est rien d'autre que l'intégration fréquente du code dans votre référentiel (SCM). En outre, intégrer SCM dans Jenkins pour la construction de votre code. P>
Vous pouvez définir la fréquence de vote à Jenkins. Ainsi, chaque fois que les changements sont fabriqués et commités dans SCM, Jenkins essaiera de créer une construction. De cette façon fonctionne .. Intégration continue. P>
Le CI fort> de Instagram strong> fonctionne comme ceci: p>
S'il vous plaît voir: Stackoverflow.com/ Questions / 102902 / ...
@ SHOG9: La question que vous vous référez à discuter de CI sur un niveau plus abstrait (osez-moi dire meta i>?), Tandis que cette question demande des détails de mise en œuvre spécifiques. Je pense qu'ils diffèrent assez pour garder celui-ci ouvert.