Je suis actuellement à l'aide jenkins/hudson pour l'intégration continue d'un grand la plupart du temps C++ du projet. Nous avons des projets distincts pour le tronc et chaque branche. Aussi, il y a quelques projets connexes pour le code Java, mais le programme d'installation pour ceux qui sont assez basiques (on peut le faire plus tard). Les projets C++ effectuer les opérations suivantes:
- Construit tout avec des options pour savoir si reconfigurer, faire un nettoyage de construire ou d'utiliser une nouvelle caisse
- Éventuellement construit et exécute tous les tests
- Éventuellement l'exécute tous les tests à l'aide de Valgrind est memcheck
- Fonctionne cppcheck
- Génère la documentation doxygen
- Publie des rapports: les tests unitaires, valgrind, cppcheck, les avertissements du compilateur, SLOC, ouvrir des tâches, et la couverture de code (à l'aide de gcov, gcovr, et la couverture du plugin)
- Déploie code de la nuit ou à la demande sur un environnement de test et un dépôt de paquets
Tout est configurable pour automatique construit et en option à la demande s'appuie. Dessous, il y a un script bash qui contrôle une grande partie de ce qui, plus loin, cela dépend de notre système de construction, qui utilise automake et autoconf personnalisés scripts bash.
Nous avons commencé à utiliser Hudson (à l'époque) parce que c'est ce que le Java gars et nous voulions juste les nightly builds. Depuis lors, nous avons ajouté beaucoup plus et continuer à ajouter de plus. À certains égards, Hudson est formidable, mais ce n'est certainement pas l'idéal.
J'ai regardé d'autres solutions, et le seul qui ressemble à cela pourrait être un remplacement est buildbot. Serait buildbot être mieux de cette situation? Est l'investissement en vaut la peine puisque nous sommes déjà à l'aide d'Hudson? Pourquoi?
EDIT: Quelqu'un a demandé pourquoi je n'ai pas trouvé d'Hudson/Jenkins pour être idéal. La réponse courte est que tout peut être amélioré. Je suis tout simplement demandais si Jenkins est actuellement la meilleure solution pour mon cas d'utilisation ou s'il y a quelque chose de mieux (buildbot?) ce serait plus facile à maintenir dans le long terme, même si de nouvelles exigences.