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...

L’équipe travailla avec acharnement et, à l’été 1992, ils furent capables de faire une démonstration incluant le système d’exploitation Green, le langage Oak (1992), les bibliothèques et le matériel. Leur première réalisation, présentée le 3 septembre 1992, fut la construction d’un PDA appelé Star7 ayant une interface graphique et un agent intelligent appelé Duke pour prêter assistance à l’utilisateur. En novembre de la même année, le Green Project fut abandonné pour devenir FirstPerson, Inc, appartenant en totalité à Sun Microsystems et l’équipe fut relocalisée à Palo Alto. L’équipe FirstPerson était intéressée par la construction d’outils hautement interactifs et quand Time Warner publia un appel d’offres en faveur d’un décodeur multifonction, FirstPerson changea d’objectif pour proposer une telle plate-forme. Cependant, l’industrie de la télé par câble trouva qu’elle offrait trop de possibilités à l’utilisateur et FirstPerson perdit le marché au profit de Silicon Graphics. Incapable d’intéresser l’industrie audiovisuelle, la société fut réintroduite au sein de Sun.

(source Wikipédia)