Question

J'aimerais vous demander quel environnement de construction automatisé vous considérez le mieux, sur la base de votre expérience pratique. Je prévois de faire du développement .Net et du développement Java. J'aimerais donc avoir un outil qui supporte ces deux plateformes.

J'ai lu et découvert l'existence de CruiseControl.NET , utilisé pour le développement du stackoverflow, et TeamCity et sa prise en charge des agents de génération sur différentes plates-formes de système d'exploitation et basées sur différents langages de programmation. Donc, si vous avez une expérience pratique sur ces deux sujets, lequel préférez-vous et pourquoi?

Actuellement, je suis surtout intéressé par la facilité d'utilisation et la gestion de l'outil, encore moins par le fait que CC est une source ouverte, et que TC est soumis à une licence à un moment donné, lorsque vous avez beaucoup de projets à exécuter ( parce que j’en ai besoin pour un petit nombre de projets).

Par ailleurs, s’il existe un autre outil qui répond à ce qui précède et que vous estimez qu’il vaut la peine de le recommander, n'hésitez pas à l’inclure dans la discussion.

Était-ce utile?

La solution

Je travaille sur et avec les outils d’intégration continue depuis celui qui a engendré Cruise Control (version java). Je les ai presque tous essayés à un moment donné. Je n'ai jamais été aussi heureux avec TeamCity. Il est très simple à installer et fournit toujours beaucoup de puissance. La page de statistiques de construction qui affiche les temps de construction, le nombre de tests unitaires, le taux de réussite, etc. est très agréable. La page d'accueil du projet de TeamCity est également très utile. Pour les projets .NET simples, vous pouvez simplement indiquer à TeamCity où se trouve la solution et quels assemblys sont testés et c’est tout ce dont elle a besoin (à part l’emplacement du contrôle de source). Nous avons également utilisé des scripts MSBuild compliqués et avons construit le chaînage. J'ai également effectué deux mises à niveau pour TeamCity, qui se sont déroulées sans douleur.

CruiseControl.NET fonctionne également bien. C’est plus compliqué à mettre en place, mais comme il a une longue histoire, il est facile de trouver des solutions sur le Web. Puisque CruiseControl.NET est open source, vous avez également la possibilité d’ajouter ou de modifier ce que vous voulez. J'avais utilisé CruiseControl.NET depuis sa sortie et écrit quelques-uns des premiers codes de cc.tray (heureusement réécrits par quelqu'un qui connaissait mieux).

Cruise, de ThoughtWorks, a également l’air très bon, mais je ne vois pas de raison impérieuse de changer de poste. Si je commençais un nouveau projet, je pourrais l'essayer, mais TeamCity a fait un excellent travail en simplifiant les choses simples tout en rendant le complexe assez simple.

Modifier: Nous venons de passer à TeamCity 5.0 il y a quelques semaines et c'était une autre mise à niveau sans douleur. Il nous a permis de tirer parti des capacités améliorées de couverture de code et du support GIT. Nous utilisons également les fonctionnalités de compilation personnelle et de validation pré-testée qui sont utilisées depuis un certain temps. Je pensais juste que je devrais mettre à jour la réponse pour indiquer que TeamCity continuait de s’améliorer et restait facile à utiliser.

Autres conseils

J'étais / je suis un grand fan de CC.NET. Nous avons actuellement 5 projets dans CruiseControl et fonctionne très bien. Écrire des fichiers de configuration avec les mains peut être pénible, mais ça va.

Mais .

Après le Kona: intégration continue et amélioration des tests unitaires (le premier 1/3 à propos de TeamCity) Je vais aussi vérifier TeamCity. J'aime le tableau de bord des tests unitaires intégrés et l'interface de configuration.

Je pense que tout le monde devrait regarder cette vidéo avant de choisir CC.NET ou TeamCity.

p.s: J'espère qu'il existe également une précieuse vidéo CC.NET sur le net.

Mon serveur de CI préféré est de loin Hudson. Facile à configurer et à entretenir, de nombreux graphiques permettant de montrer les tendances aux développeurs et aux non-développeurs, et gratuitement.

J'utilise actuellement TeamCity dans un projet et j'en suis généralement satisfait, mais la plupart des graphiques qu'il génère ne sont pas particulièrement utiles et sa configuration est plus compliquée que celle d'Hudson.

Cela dit, TeamCity est puissant, gratuit pour de nombreuses utilisations et possède une fonctionnalité qui tue: Remote Run. Vous pouvez " pré-engager " votre enregistrement directement depuis IDEA ou Eclipse, exécutez une ou plusieurs configurations de construction sur le serveur TeamCity et ne validez les modifications que si la construction a abouti (par exemple, la compilation et tous les tests sont réussis).

Etant donné que TeamCity et Hudson pourraient être opérationnels en quelques heures, il serait peut-être intéressant de les utiliser et de les exécuter côte à côte, avec tous les autres (tels que CruiseControl) auxquels vous pouvez penser. Si vous ne pouvez pas supporter rapidement un serveur CI pour effectuer une comparaison côte à côte, vous avez au moins un point de données facile à installer et / ou à configurer.

Je les ai utilisées avec succès sur différents projets. Du point de vue de la configuration et de l’administration, Team City est beaucoup plus facile à gérer. Vous n'avez pas besoin de bidouiller avec les fichiers .config comme vous le faites avec CC et l'installation est un jeu d'enfant. Étant donné que vous n'avez pas beaucoup de projets, je recommanderais Team City à CC jusqu'à ce que vous arriviez au point que Team City coûte 1 000 $.

J'ai utilisé CC.net et TeamCity. Je suis chargé de la configuration et de l'installation de TeamCity pour mon organisation (5 développeurs). Notre organisation utilise des pratiques et des outils inhabituels (au moins pour des organisations de notre taille), tels que Perforce pour le contrôle de source et plusieurs agents de génération s'exécutant sur des systèmes d'exploitation hétérogènes, ce qui a occasionné des problèmes de configuration initiale. Cependant, le support par courrier électronique a été absolument excellent pour tout mettre en place. J'ai reçu des réponses à mes questions stupides en quelques minutes à la lettre.

L’interface est intuitive et réactive, ainsi que riche en fonctionnalités. Le produit semble très cher. La configuration est simple et l'interface Web est suffisamment intelligente pour se mettre à jour sans redémarrage des services de l'agent ou du serveur, ni même l'actualisation de la page.

Je pense que nous utilisons presque toutes les fonctionnalités avancées du produit et que nous n’avons trouvé aucun bogue jusqu’à présent. Intégration Nepepend, scripts NAnt imbriqués, étiquetage de la version de Perforce, nommez-nous, nous le faisons.

Je recommande vivement TeamCity à tous ceux qui recherchent un serveur d'intégration continue, ou tout serveur de construction, vraiment.

Sans vouloir vous lancer d’autres outils :-)

Hudson est une excellente alternative open source, j’ai utilisé CC et CC.net, et j’avoue que c’est un outil fantastique. Je pense passer à hudson car il est beaucoup plus facile à installer et à entretenir.

https://hudson.dev.java.net/

Assurez-vous que le système que vous choisissez est adapté au nombre de projets dont vous aurez besoin pour le gérer ...

J'utilise CruiseControl.Net mais je ne le recommanderais pas pour la construction de nombreux projets ... J'ai un arrangement (peut-être un peu étrange) dans lequel j'ai de nombreuses bibliothèques statiques C ++ que je compose en applications. Chaque bibliothèque dépend d'autres bibliothèques et les applications tirent un ensemble de bibliothèques et construisent. Chaque bibliothèque a une suite de tests. Chaque application dispose d'une suite de tests. Je construis pour 5 compilateurs et des variantes de plates-formes (Windows).

La première chose que j'ai trouvée est que les déclencheurs de projet de CC.Net ne sont pas vraiment ce dont vous avez besoin et que le déclencheur multiple ne fonctionne pas bien avec les déclencheurs de projet. La façon dont les déclencheurs de projet fonctionnent (ils utilisent la communication à distance pour se connecter au serveur sur lequel le projet est stocké (même s'il s'agit d'un projet géré par la même instance de CC.Net), puis extraient tous les projets de ce serveur et effectuent une recherche séquentielle dans la liste. rechercher le projet qui vous intéresse ...) signifie qu’ils ne sont pas bien adaptés. Une fois que vous avez dépassé un certain nombre de projets, vous constaterez que CC.Net utilise la majeure partie du processeur de votre machine de génération.

Bien sûr, il est open source, vous pouvez donc le réparer ... Et, je suis sûr que ça ira pour un petit nombre de projets non interdépendants.

Pour plus de détails sur les problèmes que j'ai rencontrés et sur certains correctifs pour CC.Net, voir ici http://www.lenholgate.com/archives/cat_ccnet.html

J'ai récemment installé cc .net. C'est une application géniale mais qui nécessite un peu de patience. Vous allez éditer beaucoup de fichiers de configuration dans le bloc-notes :)

Il existe depuis un certain temps, il est donc bien pris en charge et vous pouvez normalement trouver quelqu'un qui a déjà fait ce que vous souhaitez faire auparavant. L’interface Web est également .net, ce qui était un avantage pour nous, car nous sommes une boutique Microsoft.

Je n’ai pas utilisé TeamCity, mais j’en ai entendu pas mal de recommandations et c’est joli.

J'ai eu l'expérience de la configuration et de l'exécution de CruiseControl (version Java) sous Linux au cours de ma précédente société. Comme la plupart des gens le suggèrent, ce n’est pas la chose la plus triviale à installer. Vous devez comprendre son cadre afin d’arriver à la configuration réalisable / gérable. Cependant, une fois que vous avez passé ce cap, je pense que CruiseControl est assez flexible pour vous permettre de faire différentes choses pour s’adapter à différents scénarios.

En outre, la documentation de CruiseControl, sa page de wiki contient également des informations utiles. .

Je n'ai pas d'expérience directe avec TeamCity. Bien que sa fonctionnalité de validation pré-test semble assez intéressante.

L’autre outil CC que vous pourriez lui donner est le Bamboo d’Atlassian. Il est beaucoup plus facile à configurer et l'interface est plus agréable. Cependant, ce n’est pas aussi flexible que ce que propose CruiseControl.

Une troisième option à considérer: la croisière Thoughtworks. Il est construit sur CruiseControl, mais offre beaucoup plus de fonctionnalités, une configuration plus facile, etc., etc. Pas gratuit (ni open source).

http://studios.thoughtworks.com/cruise-continuous-integration

J'utilise Teamcity depuis un an et demi et j'ai une grande expérience. J'ai intégré un certain nombre de projets .Net et Java et utilisé des outils tels que MSBuild, Maven, etc. J'ai trouvé Teamcity assez simple à configurer et à utiliser. J'ai également réussi à faire fonctionner CI pour certains projets SQL, ce qui était un peu un cauchemar qui aurait pu être pire avec d'autres outils de CI.
Récemment mis à niveau vers Teamcity 8.0.6 qui était indolore. Teamcity fournit également une API REST très utile pour certains scénarios. Si vous utilisez powershell pour automatiser les versions, un certain nombre de scripts d'intégration Psake / Teamcity sont disponibles sur GitHub

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