Ce que l'outil d'intégration continue est le meilleur pour un projet C++?
Cruisecontrol et Hudson, deux systèmes d'intégration continue. Bien que les deux systèmes sont capables de faire les automatisée en continu s'appuie bien, il semble beaucoup plus facile de créer un lot ou bash script de compilation, puis utilisez le planificateur de tâches Windows ou cron à l'annexe construit.
Existe-il une meilleure intégration continue des systèmes disponibles pour les projets C++? Ou c'est juste l'aide d'un script et un planificateur de la manière la plus simple?
- Cette question est actuellement en cours de discussion sur meta.
Vous devez vous connecter pour publier un commentaire.
Nous avons été à l'aide de CruiseControl pour l'IC sur un projet C++. Alors que c'est la seule chose que nous utiliser ant pour, le script ant pour CruiseControl commence juste à notre script de construction, il est donc très simple et nous n'avons pas vraiment besoin de le mettre à jour depuis bien longtemps. Par conséquent, le fait que CrusieControl est basé sur Java n'a pas vraiment été un problème pour nous.
Les principaux avantages de l'utilisation de quelque chose comme le régulateur de vitesse sont
Bien sûr, vous pouvez écrire un script qui fait tout cela, mais pourquoi faire tout ce travail? Dans le long terme, le supplément de coût initial de mise en place CruiseControl (ou quelque chose de similaire) est probablement beaucoup moins que le coût de l'entretien et de mise à jour personnalisée CI script de construction.
Si vous avez besoin de lancer un quotidien de construire et un simple script lancé par cron est suffisant pour vos besoins, puis par tous les moyens le faire. Cependant, un des avantages de l'IC est que vous obtenez un état de création de rapport après chaque enregistrement. Écriture d'un script à faire plus de travail et de CruiseControl déjà fait.
Nous utilisons Hudson pour l'IC 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 cron peut battre.
Un grand plugin est de CI de Jeu, qui garde un score sur qui rompt le construit et qui s'engage sans le briser. Hudson a des plugins pour jouer avec VMWare, Sélénium, SVN, CVS, Git. Il a la syndication RSS, qui peut vous aider à automatiser encore plus de tout le reste.
Hudson est grand...
Nous avons été à l'aide de Dart Tableau De Bord. Il est open source, mais guidé par KitWare. Depuis, ils ont changé le nom de CDash qui je présume est encore capable. Nous faisons plusieurs sortes de tests, dont tous les soirs et d'intégration continue, à travers 10 plates-formes différentes dans les deux débogage et le mode de libération ainsi que l'exécution de 1000s de l'application des tests et des rapports sur les résultats, là aussi.
J'ai été en utilisant Buildbot pour la Printemps RTS moteur projet avec succès.
Vous pouvez également essayer JetBrains' TeamCity. C'est un produit commercial, mais il donne une licence libre jusqu'à 20 configurations de build.
L'une des fonctionnalités intéressantes de l'intégration continue (CI) de l'outil est qu'un build est déclenchée à chaque fois que quelque chose est vérifié dans votre référentiel de contrôle source.
Si ce n'est pas quelque chose que vous devez alors vous êtes probablement mieux d'utiliser le planificateur de tâches de windows ou des tâches cron.
En plus des outils CI viennent également avec un (web) tableau de bord et avancé capacités de journalisation.
Votre question me semble plus "pourquoi voudrais-je utiliser un CI de l'outil" puis "CI outil dois-je utiliser". Si un script batch répond à vos besoins, utilisez-le. Pour (Re)créer un environnement de construction ne devient plus facile si vous n'avez pas besoin d'un outil CI comme une composante supplémentaire. Si vous voulez la source de contrôle de version déclenchée, un tableau de bord, le stockage de l'ancien résultats de compilation ou d'autres journalisation, utilisez un outil CI et d'éviter le développement de toutes ces fonctions dans le lot ou les scripts shell.