Sébastien Moreno

  • Augmenter la taille
  • Taille par défaut
  • Diminuer la taille
Home Blog Procédure de release Maven avec Bamboo

Procédure de release Maven avec Bamboo

Envoyer Imprimer PDF

 Le processus de release de Maven est effectué en 2 phases:
• Préparation du release s'effectuant dans le SCM
• Réalisation du release s'effectuant dans le repository Maven
On utilise donc 2 plans dans le serveur d'intégration Bamboo et aussi le système de pre-post actions afin
de gérer les cas d'erreur.

 Description du processus

Le processus de release de Maven est effectué en 2 phases:
• Préparation du release s'effectuant dans le SCM
• Réalisation du release s'effectuant dans le repository Maven
On utilise donc 2 plans dans le serveur d'intégration Bamboo et aussi le système de pre-post actions afin
de gérer les cas d'erreur.

Pré requis

Les variables globales suivantes doivent être définies dans le serveur d'intégration:

Variable
Description 
 Exemple
 global.build.dir Localisation du répertoire
contenant les plans de build
/apps/bamboo/2.x/xml-data/build-dir
 global.result.dir Localisation du répertoire contenant les résultats des plans /apps/bamboo/2.x/xml-data/builds
 global.mvn.dsi Scripts Maven de lancement /apps/build/maven-2.0.7-DSI/bin/global_mvn

 
Attention, une fois le plan BAMBOO créé il se lance automatiquement.
Il est donc préférable de ne pas préciser la commande de build lors la création du plan, mais de
l'ajouter dans un second temps.

Plan de PREPARE du RELEASE

Le premier plan permet d'effectuer la préparation du release. Dans notre exemple nous appellerons le
projet DELIVERYSAMPLE et le plan DSRELEASE, la clé du plan est donc
DELIVERYSAMPLE-DSRELEASE.


Dans un premier temps, il faut bien sur configurer la source SCM en fournissant l'URL du projet. Afin de sécuriser le build/release, on cochera l'option permettant de supprimer les sources locales au lancement
du plan.
Dans la partie builder, on fourni la commande Maven de RELEASE.
La commande afin de 'releaser' une application UFA2 est la suivante (on ne précise pas mvn):

clean package assembly:assembly install release:prepare --batch-mode
-Darguments="clean install"

Dans le cas, ou le release s'est mal passé, on souhaite faire un rollback afin de nettoyer les actions
effectuées dans les POMs et le SCM.
Il faut pour cela utiliser le post-action Failed command.
La commande à lancée est la suivante:

${bamboo.global.mvn.dsi} -loc ${bamboo.global.build.dir}/${bamboo.buildKey} -log
${bamboo.global.result.dir}/${bamboo.buildKey}/download-data/build_logs/${bamboo.fullBuildKey}.log
release:rollback

Une notification (mail) sera envoyé aux utilisateurs enregistrés dans le plan.
En cas de succès, le plan de prepare doit lancer le plan de perform afin d'effectuer le deploy.
Une dépendance child doit être déclarée dans le plan de prepare.

Plan de PERFORM du RELEASE

Le plan de perform est exécuté par dépendance de succès du plan de prepare. L'idée est d'utiliser le
même répertoire de travail pour effectuer le lancement du perform qui va builder l'application et la
déployer dans le repository Maven.
Dans la partie "source" de ce plan, on va utiliser un repository de type "Dummy repository" afin de
pointer vers le plan de PREPARE.
Pour cela, il faut founir le répertoire contenant les plans de builds (variable global.build.dir), ainsi que la
clé du plan (dans notre cas DELIVERYSAMPLE-DSRELEASE). On n'a donc pas besoin de préciser l'URL
SCM.


Attention à ne pas demander le clean du répertoire de build afin pouvoir utiliser les informations
du PREPARE présentes.

La case Force Clean doit donc être décochée.


Le builder devra exécuter la commande Maven de release perform (on ne précise pas mvn):

release:perform --batch-mode -Dgoals="clean package assembly:assembly deploy
-Dgenerate.packaging=true
-Dmaven.test.skip=true -Ddeliver.packaging=true"

Dans la commande de build on précédente on a optionnellement choisi de ne pas générer le site Maven
au moment du perform afin de raccourcir cette phase (la génération de site peut-être assez longue).
Cette action est effectuée dans une post action en cas de succés.
Il faut pour cela utiliser le post-action Success command avec la commande suivante:

${bamboo.global.mvn.dsi} -loc
${bamboo.global.build.dir}/DELIVERYSAMPLE-DSRELEASE/target/checkout
-log
${bamboo.global.result.dir}/${bamboo.buildKey}/download-data/build_logs/${bamboo.fullBuildKey}.log
site-deploy

 

Mis à jour le Mardi, 23 Décembre 2008 01:43  

Un peu d'histoire sur Java...

La plate-forme et le langage Java sont issus d’un projet de Sun Microsystems datant de 1990. L’ingénieur Patrick Naughton n’était pas satisfait par le langage C++ utilisé chez Sun, ses interfaces de programmation en langage C, ainsi que les outils associés. Alors qu’il envisageait une migration vers NeXT, on lui proposa de travailler sur une nouvelle technologie et c’est ainsi que le Projet Stealth (furtif) vit le jour. Le Projet Stealth fut rapidement rebaptisé Green Project avec l’arrivée de James Gosling et de Mike Sheridan. Ensemble, et aidés d’autres ingénieurs, ils commencèrent à travailler dans un bureau de la rue Sand Hill de Menlo Park en Californie. Ils essayèrent d’élaborer une technologie pour le développement d’applications d’une nouvelle génération, offrant à Sun la perspective d’opportunités uniques.

(source Wikipédia)