From 289540ae5ca1f181f22cf220300e81d277e6326e Mon Sep 17 00:00:00 2001 From: Luke Taylor Date: Wed, 5 Sep 2007 00:35:41 +0000 Subject: [PATCH] More improvements to release script. --- releasebuild.sh | 97 +++++++++++++++++++++++++++++++++---------------- 1 file changed, 65 insertions(+), 32 deletions(-) diff --git a/releasebuild.sh b/releasebuild.sh index 9c29d27f35..48dd22e6e0 100644 --- a/releasebuild.sh +++ b/releasebuild.sh @@ -5,23 +5,33 @@ # Release Process. # # 1. Do clean check out of source from svn. -# 2. Set the version number in the pom.xml files of all the module -# 3. Set the correct spring version number in the pom.xml. -# 3a Set the same version number in this script -# 4. Commit the source with the changed version numbers and note the revision number. -# 5. Run this script to generate the artifacts and web site in the 'release' directory. +# 2. Switch to 1.4 JVM and run 'mvn test' from core directory. +# 3. Set the version number in the pom.xml files of all the module +# 4. Set the correct spring version number in the pom.xml. +# 4a Set the same version number in this script +# 5. Commit the source with the changed version numbers and note the revision number. +# 6. Run this script to generate the artifacts and web site in the 'release' directory. +# 7. Copy the zip archives and unpack them to check the contents. +# 8. Check the site looks Ok. +# 9. Check the reference guide links in the site are valid and that images are shown and paths in HTML are relative. +# 10. Deploy the contacts and tutorial sample apps in a web container and check they work. +# 11. Upload the site to acegisecurity.org (or wherever). +# 12. Sign the zip archives using PGP. +# 13. # # - +######################################################################################################################## # # Edit this release number before running. It is used to check jar names etc. # +######################################################################################################################## + RELEASE_VERSION=1.0.5-SNAPSHOT PROJ_DIR=`pwd`; -RELEASE_DIR=$PROJ_DIR/release +RELEASE_DIR=$PROJ_DIR/release-$RELEASE_VERSION SITE_DIR=$RELEASE_DIR/site echo "** Project directory is $PROJ_DIR" @@ -30,9 +40,39 @@ SVN_REV=`svn info $PROJ_DIR | grep Revision | sed "s/Revision: //"` echo "** Building from revision $SVN_REV" +######################################################################################################################## +# +# Create the release directory if it doesn't already exist +# +######################################################################################################################## + +if [[ -e $RELEASE_DIR ]] +then + rm -Rf $RELEASE_DIR +fi + +mkdir $RELEASE_DIR +mkdir $SITE_DIR + +######################################################################################################################## +# +# run maven to generate jars +# +######################################################################################################################## + +mvn clean install -DcreateChecksum=true + +if [ "$?" -ne 0 ] +then + echo "mvn install failed" + exit 1; +fi + +######################################################################################################################## # # Check the sandbox builds with the current configuration # +######################################################################################################################## pushd sandbox @@ -46,32 +86,15 @@ fi popd - +######################################################################################################################## # -# Create the release directory if it doesn't already exist +# Generate Maven Web Site and Process Docbook Source. # - -if [[ -e $RELEASE_DIR ]] -then - rm -Rf $RELEASE_DIR -fi - -mkdir $RELEASE_DIR -mkdir $SITE_DIR - -# run maven to generate jars - -mvn clean install -DcreateChecksum=true - -if [ "$?" -ne 0 ] -then - echo "mvn install failed" - exit 1; -fi +######################################################################################################################## echo "** Generating site in $SITE_DIR". -mvn site docbkx:generate-html docbkx:generate-pdf site:deploy -DsiteDirectory=file://${SITE_DIR} +mvn site site:deploy -DsiteDirectory=file://${SITE_DIR} if [ "$?" -ne 0 ] then @@ -79,22 +102,28 @@ then exit 1; fi +######################################################################################################################## +# # Patch the module site files to point to the root css files, change names of oversized menus, # remove dodgy standard maven text etc. # +######################################################################################################################## pushd $RELEASE_DIR/site find . -name "*.html" -maxdepth 2 -mindepth 2 | xargs perl -i -p -e 's#\./css/#\.\./css/#;' \ -e 's/Maven Surefire Report/Unit Tests/;' \ -e 's/Cobertura Test Coverage/Test Coverage/;' \ - -e 's/A successful project.*greatly appreciated\.//;' - + -e 's/A successful project.*greatly appreciated\.//;' popd +######################################################################################################################## +# +# Assemble the required jar files, make sure there are the expected number and produce signatures. +# +######################################################################################################################## -# Assemble the required jar files find . -name "*${RELEASE_VERSION}.jar" | grep -v WEB-INF | xargs -I % -n 1 cp % $RELEASE_DIR find . -name "*${RELEASE_VERSION}.war" | xargs -I % -n 1 cp % $RELEASE_DIR @@ -120,4 +149,8 @@ done popd - +######################################################################################################################## +# +# Build the release zip archives. +# +########################################################################################################################