Hudson est un projet Open Source d'intégration continue qui s'est fait remarquer ces derniers temps par son essor fulgurant aux dépends de ses concurrents.
L'intégration continue est LE concept en vogue pour développer ses logiciels de façon professionnelle. Car que faire une fois que l'on vient de se doter d'un système de gestion de configuration et que les développeurs commencent à y remonter régulièrement leurs modifications ? Il faut automatiser le processus de build des WAR, des EAR, lancer des actions en fonction du succès, de l'échec, prévenir les équipes responsables du code, etc, etc. C'est exactement l'objet de l'intégration continue : faciliter l'intégration de petites parties de code en provenance de différents développeurs pour éviter les situations complexes de conflits ou de versioning.
Hudson fait donc tout cela : il s'installe en quelques clics sous forme de WAR, se configure via son interface WEB claire et complète et n'attend plus que des projets de développement à builder. Il est capable de lancer et traiter les résultats des tests unitaires (JUnit et TestNG) et réagit en conséquence. Qu'un build se passe mal et le développeur du code peut immédiatement être prévenu via mail, flux RSS ou messagerie instantanée.
Ces fonctionnalités sont assez communes chez ses concurrents comme Apache Continuum, Cruise Control ou IBM Rational Build Forge. Cependant Hudson dispose d'une fonctionnalité intéressante : il propose de répartir la charge de build des projets sur plusieurs machines ce qui est parfois réservé à la version payante voir tout simplement impossible avec d'autres environnements d'intégration continue.
Hudson est aussi capable de présenter différentes métriques des précédents builds comme par exemple le temps moyen de build (en rouge ceux en erreur) et bien d'autres.
Le dernier atout d'Hudson est sa conception très orientée vers les plugins. Même s'il ne supporte nativement que les gestionnaires de version SVN et CVS, des plugins existent déjà pour supporter Git, Perforce, ClearCase et bien d'autres ! Ses possibilités ne sont donc encore une fois limitées que par l'imagination de ses utilisateurs.
L'article de Développez.com s'avère être une très bonne initiation technique qui peut s'utiliser en parallèle avec la documentation officielle claire et concise.
# Précisions
Posté par franck villaume (site web personnel) . Évalué à 5.
Et sinon continuum, c'est :
- du parallel build
- du distributed build
- une API complète pour le pilotage distant
- des métriques de build
- et surtout : une interface graphique moche :-)
Quant à hudson, le blog qu'il faut suivre :
http://kohsuke.org/
[^] # Re: Précisions
Posté par bat13 . Évalué à 2.
Je cherche quelque chose qui permette de lancer des compilations en C, C++, avec des scripts d'installation NSIS (entre autres), et qui puisse être exécuté (les "builders" du moins) sous Windows ou Linux.
J'ai trouvé BuildBot (http://buildbot.sourceforge.net/), mais c'est à peu près tout ...
[^] # Re: Précisions
Posté par Stibb . Évalué à 4.
[^] # Re: Précisions
Posté par devnewton 🍺 (site web personnel) . Évalué à 2.
Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.
[^] # Re: Précisions
Posté par bat13 . Évalué à 2.
Par contre, si j'en crois ce site : http://confluence.public.thoughtworks.org/display/CC/CI+Feat(...)
, Hudson ne gère par Make.
Et comme il est hors de question de reprendre tous les makefile pour le mettre à la sauce Maven ou Nant ou que sais-je ...
[^] # Re: Précisions
Posté par bat13 . Évalué à 1.
Après quelques recherches, il semble assez facile d'utiliser Hudson sur des projets C, C++.
Je vais creuser le sujet, j'ai l'impression que BuildBot est un peu au point mort ...
[^] # Re: Précisions
Posté par Blackknight (site web personnel, Mastodon) . Évalué à 2.
Et puis comme j'ai déjà un Python sur la machine, je préfèrerai mettre Buildbot.
Après, c'est juste une question de goût.
Allez, un petit lien http://olivier.ramonat.free.fr/svn_trac_buildbot/svn_trac_bu(...)
[^] # Re: Précisions
Posté par bat13 . Évalué à 1.
Je l'ai mis en place, sur un projet "pilote", mais j'aimerais être sûr d'avoir misé sur le bon cheval.
Et si Hudson est en plein essor, ce n'est peut-être pas pour rien.
Je vais voir s'il est possible de jouer un peu avec Hudson pour comparer ...
[^] # Re: Précisions
Posté par Blackknight (site web personnel, Mastodon) . Évalué à 4.
Après tout, LateX n'a pas évolué depuis des lustres et personne ne s'en plaint vraiment ;-)
[^] # Re: Précisions
Posté par Mildred (site web personnel) . Évalué à 3.
Et Hudson est très facile à installer. Le plus simple c'est de lancer
java -jar hudson.jar
Sinon, il y a des moyens d'interfacer Hudson avec Apache httpd aussi ...
[^] # Re: Précisions
Posté par Stibb . Évalué à 2.
[^] # Re: Précisions
Posté par devnewton 🍺 (site web personnel) . Évalué à 2.
Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.
[^] # Re: Précisions
Posté par Mildred (site web personnel) . Évalué à 2.
Hudson gère très bien make, je l'utilise pour compiler mes projets Ada.
Dans la configuration, tu peux ajouter une étape "Execute Shell" et tu tapes ta ligne de commande make. je ne vois pas vraiment ce qu'il pourrait faire de plus. En tout cas, c'est largement suffisant pour la plupart des usages je dirais.
[^] # Re: Précision
Posté par 6Ber Yeti . Évalué à 1.
En fait, dès lors que vous avez un exécutable (script ou programme compilé), vous pouvez demander à Hudson qu'il s'occupe de le lancer de façon régulière, pourvu que l'exécutable en question retourne 0 qd tout est OK et quelque chose de non nul sinon.
Et pour finir, il faut comprendre que bien que né dans un monde java, et fort riche en plugins liés au génie logiciel Java, Hudson n'est pas un outil à réserver aux environnemments java.
# A que coucou
Posté par Sytoka Modon (site web personnel) . Évalué à 3.
En français dans le texte, ce serait mieux ;-)
[^] # Re: A que coucou
Posté par El Titi . Évalué à 10.
"C'est pas en râlant comme un putois sur tous les journaux qui ont trait à Java que Perl sera plus compréhensible"
[^] # Re: A que coucou
Posté par cosmocat . Évalué à 3.
Facile a mettre en oeuvre et avec que des avantages...
[^] # Re: A que coucou
Posté par Sytoka Modon (site web personnel) . Évalué à 3.
[^] # Re: A que coucou
Posté par Ontologia (site web personnel) . Évalué à 3.
et des outils d'analyse de la qualité de code.
Le Hudson machin permet de faire marcher tout ça ensemble :
il fait régulièrement un build de ton code, et te pond automatiquement un site avec les indicateurs de qualité de code pour l'ensemble du projet.
S'il détecte des problèmes, il peut envoyer un mail au type qui a commité le code qui a enclenché le problème.
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
[^] # Re: A que coucou
Posté par El Titi . Évalué à 2.
C'est pas moi qui le dit mais Martin Fowler himself:
http://martinfowler.com/bliki/FeatureBranch.html
On a parfois un peu l'impression que l'intégration continue, c'est la solution qu'ont trouvé pour développer ceux qui ont peur de faire des branches.
L'article de Martin montre qu'il s'agit avant tout de discipline et de méthode.
En revanche, s'affranchir de la CI lorsqu'elle montre ses limites ou n'est pas adaptée est beaucoup plus problématique avec un outil qui gère mal les branches, les merges cycliques et qui ne sait pas tracer le renommage de fichier comme ... SVN
[^] # Re: A que coucou
Posté par ham . Évalué à 2.
bouahahah.
c'est de l'intégration continue, grosso merdo ca permet de faire des test (des rapport de "qualité") tout le temps.
Pour faire cela facilement les outils nommé permette de lancer un certain nombre de tache a partir de différent évement s (cron, nouvelle version dans le VCS, ..etc) et d'afficher ca dans de belle page web avec des beaux graphiques et d'engueuler le monsieur qui a rajouté un patch qui fait foirer les test.
ca permet de lier un VCS, un système de build et des tests automatiques.
Un de ces outils est hudson, il est assez bien fait : plein de plugins assez utiles, permet de gérer assez facilement un ensemble de machine, assez pratique avec des machines de compilation et des machines de tests .
C'est assez sympathique, si on a une suite de tests
[^] # Re: A que coucou
Posté par Sytoka Modon (site web personnel) . Évalué à 2.
Ca m'a l'air très Java et très << XML Inside >> le peu que je viens de regarder. Est-ce facile à utiliser sur autre chose que sur Java ? Y-a-t'il des équivalents ou les fichiers de configuration ne sont pas en XML ?
[^] # Re: A que coucou
Posté par Johann Ollivier-Lapeyre (site web personnel) . Évalué à 1.
- la conf globale de hudson est en xml, mais on s'en fou, tu la fait sur une interface graphique
- tu definis des taches lies a ton projet. Par exemple une tache qui recupere/update un projet du svn a chaque commit et qui lance un script. Ce script peut etre par exemple un ant Java (xml donc) pour un projet java, mais aussi n'importe quoi d'autre. C'est tres souple a ce niveau.
[^] # Re: A que coucou
Posté par Stibb . Évalué à 2.
Et hop !
[^] # Re: A que coucou
Posté par ham . Évalué à 3.
Je l'utilise avec des makefile (ou autre system de build : les taches peuvent aussi etre des script shell, on peu tout faire)
Pour bien l'utiliser il faut avoir des tests qui sortent du XML, format JUnit,
Pour la configuration : l'interface web suffit,le gros avantage : pas de dependances pour l'installation (pas de serveur web a installer, configurer, pas de framework X Y Z J2EE a lancer et configurer..)
Je fait marcher ca avec du bon vieux C, des makefile et avec un framework de test d'integration en perl qui crache du XML (et du XLS pour le chef)
<testsuite errors="0" failures="5" hostname="xxxxx" name="xxxx" tests="174" time="4291" timestamp="2000-01-01T15:00:00">
<properties>
</properties>
<testcase classname="-.1-regressionTests" name="Regression tests" time="4291">
<failure message="test failedregressionTests" type="myTestError">
</failure>
<failure message="Failed SubTest" type="myTestError">
SubTest RestartNode Failed
SubTest PowerFailure Failed
</failure>
</testcase>
<testcase classname="-.1-regressionTests.1-XXXX" name="Test Case 1 : XXXXX" time="49">
</testcase>
<system-out></system-out>
<system-err></system-err>
</testsuite>
[^] # Re: A que coucou
Posté par LeBouquetin (site web personnel, Mastodon) . Évalué à 2.
On peut y ajouter un plugin de correction orthographique ?
</mauvais_esprit>
#tracim pour la collaboration d'équipe __ #galae pour la messagerie email __ dirigeant @ algoo
# A propos de buildbot
Posté par Louis Opter . Évalué à 3.
Je m'en suis servis sans problèmes avec un projet C++ de 20+ kslocs avec cmake sur freebsd/linux/windows 7 avec gcc et msvc.
Buildbot est par exemple utilisé par chrome : http://build.chromium.org/buildbot/waterfall/console
Je n'ai pas encore testé Hudson.
# Ça existe en mutualisé ?
Posté par barmic . Évalué à 2.
Ça peut s'intégrer à des forges ou c'est deux trucs séparé ?
Parce que ça m'a l'aire bien intéressant déjà pour le développement des projets à la fac :)
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.