You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by db...@apache.org on 2005/08/03 01:28:19 UTC
svn commit: r227112 - /geronimo/branches/v1_0_M4-QA/publish_release.sh
Author: dblevins
Date: Tue Aug 2 16:28:18 2005
New Revision: 227112
URL: http://svn.apache.org/viewcvs?rev=227112&view=rev
Log:
The script that will build the release
Added:
geronimo/branches/v1_0_M4-QA/publish_release.sh (with props)
Added: geronimo/branches/v1_0_M4-QA/publish_release.sh
URL: http://svn.apache.org/viewcvs/geronimo/branches/v1_0_M4-QA/publish_release.sh?rev=227112&view=auto
==============================================================================
--- geronimo/branches/v1_0_M4-QA/publish_release.sh (added)
+++ geronimo/branches/v1_0_M4-QA/publish_release.sh Tue Aug 2 16:28:18 2005
@@ -0,0 +1,111 @@
+#!/bin/bash
+#
+# Copyright 2005 The Apache Software Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# --------------------------------------------------------------------
+# $Rev$ $Date$
+# --------------------------------------------------------------------
+
+## This script is not supported and is here for convenience
+
+# If we need to SSH up to the server where the builds are published
+# These three varaibles will be used to find the host
+REMOTE_HOST='apache.org'
+
+# This is where we should place our release builds till we have voted
+# to accept them
+RELEASE_DIR='/www/cvs.apache.org/dist/geronimo/unstable'
+
+# The public repo url for geronimo
+SVN_URL="http://svn.apache.org/repos/asf/geronimo/tags/v1_0_M4"
+
+# Example value: 1.0-123456
+VERSION="1.0-M4"
+
+# Example value: geronimo-1.0-123456
+RELEASE_ID="geronimo-$VERSION"
+
+# Example value: /www/cvs.apache.org/dist/geronimo/unstable/geronimo-1.0-123456
+VERSION_DIR="$RELEASE_DIR/$VERSION"
+
+# Make the DIST directory if it isn't present
+DIST=$PWD/dist
+test -d $DIST || mkdir $DIST
+
+echo "$RELEASE_ID"
+
+### Utility functions ########
+function shash { openssl $1 < $2 > $2.$1 ;}
+function fail () { echo $1 >&2; exit 1;}
+function package () {
+ DEST=$1; SOURCE=$2
+ tar czf $DEST.tar.gz $SOURCE
+ zip -9rq $DEST.zip $SOURCE
+}
+function publish_build_archives {
+
+ # We want to checkout Geronimo into a directory that will be named
+ # just right to be the source directory, then we can just zip and tar
+ # it up before we build it.
+ #
+ # The directory will be named geronimo-1.0-SVN_REVISION_NUMBER
+ svn checkout $SVN_URL $RELEASE_ID
+
+ # The .svn directories contain a copy of all the files, so we should
+ # delete them our or source zip and tar files will be twice as big
+ # as they need to be.
+ find $RELEASE_ID -name '.svn' -exec rm -rf {} \;
+
+ # Now let's create the source zip and tar before we build while we
+ # still have a completely clean checkout with no target directories,
+ # velocity.log files and other junk created during a build.
+ package $DIST/${RELEASE_ID}-src $RELEASE_ID || fail "Unable to create source binaries"
+
+ # Let's go ahead and run the build to create the geronimo-foo-1.0-SVN_REVISION.jar files
+ # We don't run the tests as this is not a script for testing and reporting those test results.
+ # If the build fails to compile, the 'fail' function is called and this script will exit
+ # and nothing will be published.
+ ( cd $RELEASE_ID && maven -o -Dmaven.{itest,test}.skip=true ) || fail "Build failed"
+
+ # During the assembly module a directory called geronimo-1.0-SVN_REVISION was created. Let's
+ # move in to that directory and create a geronimo-1.0-SVN_REVISION.zip and a tar.gz of the same name.
+ # When unpacked by users, these archives will extract into a directory called geronimo-1.0-SVN_REVISION/
+ ( cd $RELEASE_ID/modules/assembly/target && package $DIST/${RELEASE_ID} $RELEASE_ID ) || fail "Unable to make binary archives"
+
+ # Let's create checksums for our source and binary tars and zips.
+ for archive in $DIST/*.{zip,tar.gz}; do
+ echo $archive
+ shash md5 $archive
+ shash sha $archive
+ done || fail "Unable to sign or hash release archives"
+
+ # Now we want to create a directory where we will put the archives and checksums up for download.
+ # Here we setup some variables for use. The VERSION_DIR will typically look like:
+ # /www/cvs.apache.org/dist/geronimo/unstable/1.0-SVN_REVISION/
+ # This is the directory on apache.org where non-release builds a placed.
+ VERSION_DIR=$RELEASE_DIR/$VERSION
+
+ # At this point we are mostly done, we just need to make our release directory and copy the files.
+ # We have to do this remotely over ssh.
+ echo "Making dir $VERSION_DIR"
+ SSH_URL=$REMOTE_HOST
+ (ssh $SSH_URL mkdir $VERSION_DIR ) || fail "Unable to create the release dir $VERSION_DIR"
+ (scp $DIST/${RELEASE_ID}* $SSH_URL:$VERSION_DIR) || fail "Unable to upload the binaries to release dir $VERSION_DIR"
+
+ # clean up locally
+ echo rm -r $DIST/* $RELEASE_ID
+}
+
+publish_build_archives
Propchange: geronimo/branches/v1_0_M4-QA/publish_release.sh
------------------------------------------------------------------------------
svn:executable = *