#/bin/bash #Pasos: #1:Comprobar los números de versión de las variables y el password #2:Comprobar que los buildnumber de los proyectos son correctos y están commitados #3:Ejecutar este script #4:Subir los instaladores que estarán dice $HOME/.gvsig-devel.properties INCREMENT=3 #1:major number 2:minor number 3:bug number USER= PASS= LIBRARIES="org.gvsig.raster.cache org.gvsig.toolbox" MULTIPLAT_PLUGINS="org.gvsig.raster org.gvsig.raster.gdal org.gvsig.raster.ermapper org.gvsig.raster.lizardtech" ALLPLAT_PLUGINS="org.gvsig.geoprocess org.gvsig.raster.tilecache org.gvsig.raster.tools org.gvsig.raster.georeferencing org.gvsig.raster.multifile org.gvsig.raster.netcdf org.gvsig.raster.osm org.gvsig.raster.postgis org.gvsig.raster.principalcomponents org.gvsig.raster.reproject org.gvsig.raster.wcs org.gvsig.raster.wms org.gvsig.raster.wmts" WORKSPACE=. #QUITAR EN JENKINS LOG=$HOME"/log-closeversions-"`date +%d%m%Y%H%M`".txt" S0="https://devel.gvsig.org/svn/gvsig-raster" S1="https://devel.gvsig.org/svn/gvsig-georeferencing" S2="https://devel.gvsig.org/svn/gvsig-toolbox" S3="https://devel.gvsig.org/svn/gvsig-osm" S4="https://devel.gvsig.org/svn/gvsig-geoprocess" PARAMETERS_LIN="-Dnative-platform=linux -Dnative-compiler=gcc4 -Dnative-arch=i386 -Dnative-distribution=all -Dlibrary-type=dynamic -Dnative_classifier=linux-all-gcc4-i386-dynamic -Dnative_classifier=linux-all-gcc4-i386-dynamic -Dmaven.test.skip" PARAMETERS_WIN="-Dnative-platform=win -Dnative-compiler=vs8 -Dnative-arch=i386 -Dnative-distribution=win -Dlibrary-type=dynamic -Dnative_classifier=win-nt-vs8-i386-dynamic -Dnative_classifier=win-nt-vs8-i386-dynamic -Dmaven.test.skip" PLUGINS=$MULTIPLAT_PLUGINS" "$ALLPLAT_PLUGINS PROJECTS=$LIBRARIES" "$PLUGINS LIBRARIES_SERVER=($S0 $S2) MULTIPLAT_PLUGINS_SERVER=($S0 $S0 $S0 $S0) ALLPLAT_PLUGINS_SERVER=($S4 $S0 $S0 $S1 $S0 $S0 $S3 $S0 $S0 $S0 $S0 $S0 $S0) PLUGINS_SERVER=("${MULTIPLAT_PLUGINS_SERVER[@]}" "${ALLPLAT_PLUGINS_SERVER[@]}") PROJECTS_SERVER=("${LIBRARIES_SERVER[@]}" "${PLUGINS_SERVER[@]}") #****************************************** # Checkout #****************************************** cont=0; for i in $PROJECTS; do # svn checkout ${PROJECTS_SERVER[cont]}"/"$i"/trunk/"$i echo ${PROJECTS_SERVER[cont]}"/"$i"/trunk/"$i # cont=$((cont+1)) done #exit; #****************************************** # Clean #****************************************** echo "Cleaning..."$PROJECTS for i in $PROJECTS; do if [ ! -d $WORKSPACE/$i ]; then continue; fi echo "Cambiando a..."$WORKSPACE/$i >> $LOG cd $WORKSPACE/$i #mvn clean >> $LOG #mvn release:clean >> $LOG cd .. done #exit; #****************************************** # Increase build number #****************************************** if [ "$1" == "increasebn" ]; then for i in `ls`; do if [ -d $i ]; then cd $i; mvn compile -Dincrease-build-number; cd .. fi done fi #****************************************** # Commit build number #****************************************** if [ "$1" == "commitbn" ]; then for i in `ls`; do if [ -d $i ]; then cd $i; svn commit -m "New build number"; cd .. fi done fi #****************************************** # Get version #****************************************** version() { VERSION_TO_FIX=`cat pom.xml | grep "" | head -n 1 | sed 's///g' | sed 's/-SNAPSHOT<\/version>//g'`; MAJOR_NUMBER=`echo $VERSION_TO_FIX | cut -d"." -f 1`; MINOR_NUMBER=`echo $VERSION_TO_FIX | cut -d"." -f 2`; BUG_NUMBER=`echo $VERSION_TO_FIX | cut -d"." -f 3`; if [ $INCREMENT -eq 1 ]; then MAJOR_NUMBER=$((MAJOR_NUMBER+1)); fi if [ $INCREMENT -eq 2 ]; then MINOR_NUMBER=$((MINOR_NUMBER+1)); fi if [ $INCREMENT -eq 3 ]; then BUG_NUMBER=$((BUG_NUMBER+1)); fi NEW_VERSION_VALUE=$MAJOR_NUMBER"."$MINOR_NUMBER"."$BUG_NUMBER"-SNAPSHOT"; } cont=0 for i in $PROJECTS; do if [ ! -d $WORKSPACE/$i ]; then cont=$((cont+1)) continue; fi cd $WORKSPACE/$i echo "Cambiando a..."$WORKSPACE/$i >> $LOG version echo $VERSION_TO_FIX echo $NEW_VERSION_VALUE #****************************************** # Prepare #****************************************** mvn release:prepare -B -DdryRun=false -Dtag=$VERSION_TO_FIX -DreleaseVersion=$VERSION_TO_FIX -DdevelopmentVersion=$NEXT_VERSION_VALUE -DpreparationGoals="clean install" -Dusername=$USER -Dpassword=$PASS -DignoreSnapshots=true -Darguments=$PARAMETERS_LIN read -p "¿Prepare de $i correcto? ¿Continuar? s/n: " CONTINUE if [ "$CONTINUE" == "n" ]; then mvn release:rollback exit; fi #****************************************** # Perform #****************************************** mvn release:perform -Dusername=$USER -Dpassword=$PASS -Darguments=$PARAMETERS_LIN read -p "¿Perform de $i correcto? ¿Continuar? s/n: " CONTINUE if [ "$CONTINUE" == "n" ]; then mvn release:rollback exit; fi cont=$((cont+1)) cd .. done #****************************************** # Windows Installer #****************************************** cont=0; for i in $MULTIPLAT_PLUGINS; do #svn checkout ${MULTIPLAT_PLUGINS_SERVER[cont]}"/"$i"/tags/v"${MULTIPLAT_PLUGINS_VERSION[cont]} #cd v${MULTIPLAT_PLUGINS_VERSION[cont]} #mvn install $PARAMETERS_WIN #cd .. #rm v${MULTIPLAT_PLUGINS_VERSION[cont]} -rf cont=$((cont+1)) done