Question

Cruisecontrol et Hudson sont deux systèmes d’intégration continue populaires. Bien que les deux systèmes soient capables de réaliser correctement les constructions automatisées en continu, il semble beaucoup plus facile de créer un script de génération par lots ou bash, puis d’utiliser le planificateur Windows ou le programme cron pour planifier les générations.

Existe-t-il de meilleurs systèmes d'intégration continue disponibles pour les projets C ++? Ou utilisez-vous simplement un script et un planificateur plus simplement?

Était-ce utile?

La solution

Nous utilisons CruiseControl pour CI sur un projet C ++. Bien que ce soit la seule chose pour laquelle nous utilisons ant, le script de génération ant pour CruiseControl ne fait que démarrer notre script de génération normal. Il est donc très simple et nous n'avons pas vraiment eu besoin de le mettre à jour depuis longtemps. Par conséquent, le fait que CrusieControl soit basé sur Java n’a pas vraiment posé problème pour nous.

Les principaux avantages de l’utilisation d’un régulateur de vitesse sont

.
  • Une belle page Web indiquant l'état de la construction
  • E-mail après chaque génération ou après des générations ayant échoué
  • Construit automatiquement après une validation du système de contrôle de la source
  • Un plugin firefox pour surveiller l’état de la construction
  • Affiche le résultat de toutes les erreurs de construction.
  • Indique quels fichiers ont changé depuis la dernière version (utile pour voir quel développeur a rompu le buid)

Bien sûr, vous pouvez écrire vous-même un script qui fait tout cela, mais pourquoi tout cela fonctionne-t-il? À long terme, le coût initial supplémentaire de la configuration de CruiseControl (ou d'un système similaire) est probablement bien inférieur au coût de la maintenance et de la mise à jour d'un script de génération de CI personnalisé.

Si tout ce dont vous avez besoin est de lancer une construction quotidienne et qu'un simple script lancé par cron est suffisant pour vos besoins, alors ne vous gênez pas. Cependant, l'un des avantages de CI est que vous obtenez un rapport sur l'état de la construction après chaque enregistrement. L'écriture d'un script nécessite plus de travail et CruiseControl le fait déjà.

Autres conseils

Nous utilisons Hudson pour CI et SonarQube pour les métriques de code. Ils sont intégrés et Hudson a une poignée de plugins qu’aucune tâche cronjob ne peut battre.

Un bon plugin est CI Game, qui permet de savoir qui casse les versions et qui les commet sans les rompre. Hudson a des plugins pour jouer avec VMWare, Selenium, SVN, CSV, Git. Il possède une syndication RSS, qui peut vous aider à automatiser encore plus tout le reste.

Hudson est génial ...

Nous utilisons le Dashboard . Il est open source mais conduit par KitWare . Depuis, ils ont changé le nom de CDash , ce qui, je le présume, est toujours aussi efficace. Nous réalisons plusieurs types de tests, notamment une intégration nocturne et continue sur 10 plates-formes différentes en mode débogage et édition, ainsi que des milliers de tests d'application et la génération de résultats.

J'utilise Buildbot pour le Le projet Spring RTS Engine a abouti.

Vous pouvez également essayer TeamCity de JetBrains . C'est un produit commercial, mais il donne une licence gratuite pour un maximum de 20 configurations de construction.

L'une des fonctionnalités intéressantes d'un outil d'intégration continue (CI) est qu'une génération est déclenchée chaque fois que quelque chose est enregistré dans votre référentiel de contrôle de source.

Si ce n’est pas quelque chose dont vous avez besoin, vous feriez probablement mieux d’utiliser le planificateur de tâches Windows ou les tâches Cron.

De plus, les outils de CI comprennent également un tableau de bord (Web) et des fonctionnalités de journalisation avancées.

Votre question me semble plus "Pourquoi utiliser un outil de CI" puis "quel outil de CI dois-je utiliser". Si un script de traitement par lots répond à vos besoins, veuillez l’utiliser. La (re) création d'un environnement de construction ne devient plus facile que si vous n'avez pas besoin d'un outil de CI en tant que composant supplémentaire. Si vous souhaitez une génération déclenchée par le contrôle de source, un tableau de bord, le stockage des résultats de construction antiques ou une autre consignation, utilisez un outil de CI et évitez de développer toutes ces fonctions dans des scripts batch ou shell.

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