---+!! <center>Déploiement des Logiciels du JMMC</center> %BR% %TOC% ---++ Philosophie * Le tronc contient toujours la dernière version de développement du logiciel en question. * Les versions déployées le sont toujours depuis une version taggée. * Ces règles d'hygiène sont de la responsabilité de chacun, pour garantir une traçabilité sans faille de nos développement. ---++ Logiciels Version générée automatiquement par le script de déploiement ==mkfRepoUtil==: %INCLUDE{"http://apps.jmmc.fr/releases/deploymentConf.txt"}% ---++ Procédure Générique * Chaque logiciel est composé d'un ou plusieurs modules, archivés en configuration sous [[https://svn.jmmc.fr][SVN]] (visibles avec la commande ==# mkfRepoUtil info !AppLauncher==); * Chaque logiciel est déployé sous un compte utilisateur dédié sur notre serveur (voir [[#Logiciels][tableau]]). * Pour déployer une version alpha/bêta d'un logiciel (par exemple _AppLauncher_), il faut: 1 installer dans un compte de test les versions 'tronc' de ses modules et ses dépendances avec: ==# mkfRepoUtil install !AppLauncher== 1 tester cette version en profondeur : __si des problèmes subsistent, corriger dans le tronc__, er recommencer. 1 une fois validé, vous pouvez tagger la version courante avec la commande ==# mkfRepoUtil -v AL_V1_0_1b1 tag !AppLauncher== * Pour déployer une version finale d'un logiciel (par exemple _AppLauncher_), il faut: 1 tagger les versions 'tronc' de ses modules et ses dépendances avec: ==# mkfRepoUtil -v AL_V1_0_1 tag !AppLauncher== 1 installer sur le compte de production (voir [[#Logiciels][tableau]]) la version taggée de ses modules et ses dépendances avec: ==# mkfRepoUtil -v AL_V1_0_1 install !AppLauncher== Note: l'action ==tag== du script ==mkfRepoUtil== effectue un remote tag (svn) donc travaille sur le tronc. ---++ Cas Particulier de SearchCal (dépendance à MCS) ---+++ Pour la beta 1) Mettre la version de développement de MCS: <verbatim> MCSTOP = /home/MCS MCSDATA = /home/MCS/data MCSRELEASE = DEVELOPMENT MCSROOT = /home/MCS/DEVELOPMENT MCSENV = default INTROOT = # su - swmgr # cd mcsins # svn up # cd src # make all install # cd ../.. # ./mcsinsInstall -u # exit </verbatim> 2) Mettre en ligne la beta: <verbatim> # su - betaswmgr # mkfRepoUtil install SearchCal # ### kill du serveur # ./sclws.sh # mkfRepoUtil -v SC_V4_5b1 tag SearchCal # exit </verbatim> ---+++ Pour la mise en production En attendant la refonte, voir [[http://ipag.obs.ujf-grenoble.fr/twiki/bin/view/Jmmc/Software/SearchCalInstallation]]. ---+ Astuces * Lors du déploiement des versions de production, recopier dans l'applicationData.xml l'element pubDate associé. Les releases notes des versions de prod et beta seront ainsi synchronisée. ---+ Notes d'installation de MCS en mode single user / no MCSROOT en vue d'une installation "isolée" du serveur SearchCal ---++ Sur Ubuntu 12.04 64bits ---+++ Prerequis MCS * Installer la config de base: <verbatim> # install build material apt-get install aptitude g++ tclx xsltproc libgdome2-dev svn subversion java7-sdk xmlstarlet # fix enable directives in Makefiles sudo rm /bin/sh ; ln -s /bin/bash /bin/sh # avoid script name change sudo ln -s /usr/bin/xmlstarlet /usr/bin/xml # enable java deploiement copy sudo mkdir -p /var/www/html/jnlp/jar/original sudo chmod -R a+w /var/www/html/jnlp/jar/ </verbatim> * Ajouter les variables dans le .bashrc (en fait un .bash_mcs chargé par le bashrc): <verbatim> # To help mkfMakefile find header glibconfig.h export USER_INC=$(pkg-config --cflags glib-2.0) # to help compilation and runtime execution export USER_LIB="-L/lib -L/usr/lib" export LD_LIBRARY_PATH=/lib:/usr/lib:${LD_LIBRARY_PATH} # mandatory variables : export INTROOT=$HOME/INTROOT export MCSTOP=$INTROOT # source main configuration script . ~/mcs.sh </verbatim> * Installer mcsins pour installer l'INTROOT et les fichiers de conf de base <verbatim> svn co https://svn.jmmc.fr/jmmc-sw/MCS/trunk/mcsins make -C mcsins/src </verbatim> Pour se faciliter la vie lors des deploiements java, recopier du serveur principal le fichier à déposer dans INTROOT/etc/keystore.key. ---+++ Prerequis SearchCal <verbatim> # install build material apt-get install gsoap uuid-dev </verbatim> ---+++ Lancement de la compilation Récupérer mkfRepoUtil et lancer: =mkfRepoUtil MCS SearchCal= ---++++ Modifs de codes (commitées) du fait d'une config gcc plus stricte: * reordonnancement des librairies pour la compilation * ajouts d'includes manquant * ex :miscLocateFile_LIBS = misc err log mcs * ubuntu "11.10 uses the ld flag --as-needed by default now. This requires the libraries beeing behind the objects needing their symbols on the command line." ---++++ Modifs manuelles * Execution test SearchCal: * Le proxy empeche certaines requetes Vizier de bien fonctionner. Il faut supprimer la variable d'environnement http_proxy * Le fichier wsdl généré par soapcpp2 V2.8 n'a plus le meme namespace qu'en V2.7... une copie de l'ancien permet de compiler le reste de sclgui sans problème --- Pour tester: ssh jmmc@gag8129 mdp habituel -- Main.SylvainLafrasse - 18 Sep 2012
This topic: Jmmc/Software
>
WebHome
>
ProcedureDeploiement
Topic revision: r9 - 2013-01-24 - GuillaumeMella
Copyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback