Developpez.com - Rubrique ALM

Le Club des Développeurs et IT Pro

Quel outil d'intégration continue utilisez vous pour des projets C++ et C# ?

Le 2008-09-23 19:52:49, par Ozie05, Membre à l'essai
Bonjour,

Pour mes projets en C++ et C#, j'aimerai mettre en place un serveur d'intégration open source. J'hésite entre CruiseControl (que j'ai le plus testé mais qui me semble un peu "vieux" et Hudson (plus simple à configurer de mon point du vue). Sachant que Cruise Control .Net ne marche pas sur ma machine quel est votre préférence entre ses deux outils et pourquoi? Pour quel type de projet les utilisez-vous?

Merci
  Discussion forum
13 commentaires
  • romaintaz
    Rédacteur
    Bonjour,

    Personnellement, je suis à fond sur Hudson (j'en ai même écrit un article ici).
    Toutefois, mes projets sont en Java.
    Mais je sais qu'il existe une façon pas trop complexe de le faire tourner avec des projets C++ ou C#...
    Les principaux intérêts d'Hudson sont sa facilité d'installation, de configuration et d'utilisation, ainsi que ses fonctionnalités puissantes...
  • Philippe Vialatte
    Expert éminent sénior
    bonjour,

    Sachant que Cruise Control .Net ne marche pas sur ma machine
    ??? bizarre, bizarre

    a premiere vue, CruiseControl (.net ou pas) ou Hudson ou TeamCity peuvent correspondre a ton besoin

    Personnellement (très oriente comme je suis ), je t'aurais bien conseille de regler ton pb avec cruisecontrol.net, mais je ne connais pas assez hudson pour te conseiller.

    Teamcity est aussi super facile a configurer et a 2/3 fonctionnalités sympa (détection de duplications de codes, pre-test des commit...), et est gratuit si tu as moins de 20 cibles de build et - de 20 utilisateurs...je sais, il n'est pas "open source"

    Pour cruise control, la version .net me sert sur...tous les projets .net de ma boite (wss, gestion, bas niveau, deploiement & co...)
  • rseM2
    Membre confirmé
    Bonjour,

    De notre côté, nous avons fait le choix d'Hudson (facile à utiliser, nombreuses fonctionnalités qui augmentent au fil des jours...). Nous l'avons pour le moment essayé sur des projets java (ant et maven 2) mais nous allons commencer à l'expérimenter sur des projets C++ avec Visual Studio.

    Si quelqu'un a déjà fait cela, je suis intéressé par les retours.
    Je tacherai de faire un retour de nos travaux une fois terminés.

    Rémy
  • gboissinot
    Membre éclairé
    Bonjour Rémy,

    peux-tu maintenant nous faire partager ton retour d'expérience sur la mise en place de Hudson pour des projets C++ (pour la compilation, l'exécution des tests et l'affichage de métriques)?

    Sinon, depuis le dernier billet, Hudson s'est doté de plugins pour la compilation de projets C/C++ avec SCons ou CMake, des outils de tests unitaires comme CppUnit et l'intégration d'outils de qualité de code comme CCCC.

    Merci
  • rseM2
    Membre confirmé
    Bonjour gboissinot,

    Désolé de ne pas avoir répondu plus tôt...

    Pour le moment cela fonctionne plutôt bien même s'il reste encore du travail.
    Voilà quelques retours :
    • Pour la compilation cela fonctionne bien. La plupart du temps, les projets passe par une tâche ant pour appeler le compilateur ;
    • Pour les tests unitaires, certains utilisent CppUnit et d'autres se sont tournés vers googletest. Dans les deux cas, il faut utiliser une feuille de transformation pour avoir un fichier xml compréhensible par Hudson. C'est là où on voit qu'il n'existe pas vraiment de "standard" pour le format de sortie de JUnit ;
    • Pour les métriques, des premiers tests se mettent en place mais on souffre du manque d'outils pour C/C++. Si d'autres ont des retours on est preneur.


    Sinon, nous n'avons pas encore pu tester la matrice de configuration d'hudson pour pouvoir vérifier le build sur plusieurs environnements (OS, compilateur...) différents. De ce que j'ai compris c'est que ce n'est pas encore mature. Si vous avez des retours, on est aussi preneur.

    Rémy
  • gboissinot
    Membre éclairé
    Merci beaucoup de ce retour.

    Pour cppunit, en fait le plugin cppunit de Hudson permet de ne plus ajouter l’application de la feuille de transformation dans sa chaîne de construction; Hudson s’en charge.

    Pour googletest, est-ce que ta feuille de style consiste à remplacer dans ton fichier XML l’élément root ‘testsuite’ par l’élément ‘testsuites’ (avec un ‘s) afin que cela soit compréhensible par Hudson ?
    Cette issue semble désormais résolu dans la dernière version de googletest
    http://code.google.com/p/googletest/.../detail?id=114
  • rseM2
    Membre confirmé
    Envoyé par gboissinot

    Pour cppunit, en fait le plugin cppunit de Hudson permet de ne plus ajouter l’application de la feuille de transformation dans sa chaîne de construction; Hudson s’en charge.
    Merci pour l'information, on va tester cela.

    Envoyé par gboissinot
    Pour googletest, est-ce que ta feuille de style consiste à remplacer dans ton fichier XML l’élément root ‘testsuite’ par l’élément ‘testsuites’ (avec un ‘s) afin que cela soit compréhensible par Hudson ?
    Cette issue semble désormais résolu dans la dernière version de googletest
    http://code.google.com/p/googletest/.../detail?id=114
    Oui c'est bien cela. On va aussi tester cela.

    Merci pour ces informations.

    Rémy
  • zapho
    Membre à l'essai
    Bonjour,

    J'utilise Hudson pour un projet C# et cela fonctionne parfaitement et c'est simple à mettre en place. Hudson propose des plugins pour MSBuild, NAnt, NUnit, MSTest, FxCop. De quoi configurer une intégration continue efficace.

    Evidemment, les possibilités pour Java sont bien plus étendues mais c'est déjà pas mal.
  • Vince78
    Nouveau membre du Club
    Salut,

    De passage dans le forum, je voulais vous faire un retour sur la matrice de configuration hudson

    Dans notre entreprise, nous sommes en train d'expérimenter CPP + Maven + Hudson.

    Concernant la matrice de configuration, nous l'utilisons pour compiler les projet suivant l'OS, le type de librairie (shared ou static) et le mode debug.
    C'est très simple à utiliser, on défini des paramètres qui peuvent se raccrocher à une variable d'environnement, à des labels de plateforme...
    Les premiers résultats sont impressionnants à condition que les plateformes de compilations soient bien configuré.

    Cette fonctionalité est encore en version alpha alors le hic est qu'il faut créer un nouveau projet et que les dépendances entre projets ne sont pris en compte.

    A+
  • baconix
    Futur Membre du Club
    Bonjour,

    L'association Hudson-NAnt-NUnit fonctionne-t-elle avec la dernière version de NUnit soit la 2.5

    A+