publish_release.sh | 12 --
release.sh | 296 ++++++++++++++++++++---------------------------------
2 files changed, 114 insertions(+), 194 deletions(-)
New commits:
commit 178abf75353d1932d4d1c7f6d75f4e9dd261ab11
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Wed Sep 28 14:43:29 2011 -0500
Update the git script to function on the assumption that the current folder is a git
folder and the folder to build from.
diff --git a/release.sh b/release.sh
index 2f583c9..b3491ad 100755
--- a/release.sh
+++ b/release.sh
@@ -151,36 +151,30 @@ print_program_versions "${program_versions[@]}"
echo
"==============================================================================="
-# Clone and/or checkout the source from git.
-
-if [ -d "$WORKING_DIR" ]; then
- cd "$WORKING_DIR"
- git status >/dev/null 2>&1
- GIT_STATUS_EXIT_CODE=$?
- # Note, git 1.6 and earlier returns an exit code of 1, rather than 0, if there are any
uncommitted changes,
- # and git 1.7 returns 0, so we check if the exit code is less than or equal to 1 to
determine if $WORKING_DIR
- # is truly a git working copy.
- if [ "$GIT_STATUS_EXIT_CODE" -le 1 ]; then
- echo "Checking out a clean copy of the release branch
($RELEASE_BRANCH)..."
- git fetch origin "$RELEASE_BRANCH"
- [ "$?" -ne 0 ] && abort "Failed to fetch release branch
($RELEASE_BRANCH)."
- git checkout "$RELEASE_BRANCH" 2>/dev/null
- if [ "$?" -ne 0 ]; then
- git checkout --track -b "$RELEASE_BRANCH"
"origin/$RELEASE_BRANCH"
- fi
- [ "$?" -ne 0 ] && abort "Failed to checkout release branch
($RELEASE_BRANCH)."
- git reset --hard "origin/$RELEASE_BRANCH"
- [ "$?" -ne 0 ] && abort "Failed to reset release branch
($RELEASE_BRANCH)."
- git clean -dxf
- [ "$?" -ne 0 ] && abort "Failed to clean release branch
($RELEASE_BRANCH)."
- git pull
- [ "$?" -ne 0 ] && abort "Failed to update release branch
($RELEASE_BRANCH)."
- else
- echo "$WORKING_DIR does not appear to be a git working directory ('git
status' returned $GIT_STATUS_EXIT_CODE) - removing it so we can freshly clone the
repo..."
- cd ..
- rm -rf "$WORKING_DIR"
- [ "$?" -ne 0 ] && abort "Failed to remove bogus working
directory ($WORKING_DIR)."
- fi
+# Checkout the source from git, assume that the git repo is already cloned
+git status >/dev/null 2>&1
+GIT_STATUS_EXIT_CODE=$?
+# Note, git 1.6 and earlier returns an exit code of 1, rather than 0, if there are any
uncommitted changes,
+# and git 1.7 returns 0, so we check if the exit code is less than or equal to 1 to
determine if $WORKING_DIR
+# is truly a git working copy.
+if [ "$GIT_STATUS_EXIT_CODE" -le 1 ]; then
+ echo "Checking out a clean copy of the release branch
($RELEASE_BRANCH)..."
+ git fetch origin "$RELEASE_BRANCH"
+ [ "$?" -ne 0 ] && abort "Failed to fetch release branch
($RELEASE_BRANCH)."
+
+ git checkout "$RELEASE_BRANCH" 2>/dev/null
+ if [ "$?" -ne 0 ]; then
+ git checkout --track -b "$RELEASE_BRANCH"
"origin/$RELEASE_BRANCH"
+ fi
+ [ "$?" -ne 0 ] && abort "Failed to checkout release branch
($RELEASE_BRANCH)."
+ git reset --hard "origin/$RELEASE_BRANCH"
+ [ "$?" -ne 0 ] && abort "Failed to reset release branch
($RELEASE_BRANCH)."
+ git clean -dxf
+ [ "$?" -ne 0 ] && abort "Failed to clean release branch
($RELEASE_BRANCH)."
+ git pull
+ [ "$?" -ne 0 ] && abort "Failed to update release branch
($RELEASE_BRANCH)."
+else
+ echo "$WORKING_DIR does not appear to be a git working directory ('git
status' returned $GIT_STATUS_EXIT_CODE) - removing it so we can freshly clone the
repo..."
fi
# if this is a test build then create a temporary build branch off of RELEASE_BRANCH.
This allows checkins to
@@ -293,4 +287,3 @@ echo "Version: $RELEASE_VERSION"
echo "Branch URL:
$PROJECT_GIT_WEB_URL;a=shortlog;h=refs/heads/$RELEASE_BRANCH"
echo "Tag URL: $PROJECT_GIT_WEB_URL;a=shortlog;h=refs/tags/$RELEASE_TAG"
echo
"==============================================================================="
-
commit dea54207756c9b17722e8770518760a326f06a1d
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Wed Sep 28 14:32:28 2011 -0500
Removed the git cloning option from the scripts. The scripts do not exist unless the
git repo was already cloned.
diff --git a/publish_release.sh b/publish_release.sh
index 3141102..fc696b0 100755
--- a/publish_release.sh
+++ b/publish_release.sh
@@ -2,7 +2,6 @@
source `dirname $0`/rhq_bash.lib
-
# Functions
abort()
@@ -182,17 +181,6 @@ if [ ! "$HUDSON_URL" ]; then
[ "$?" -ne 0 ] && abort "Failed to remove bogus
working directory ($WORKING_DIR)."
fi
fi
-
- if [ ! -d "$WORKING_DIR" ]; then
- echo "Cloning the $PROJECT_NAME git repo (this will take about 10-15
minutes)..."
- git clone "$PROJECT_GIT_URL" "$WORKING_DIR"
- [ "$?" -ne 0 ] && abort "Failed to clone $PROJECT_NAME git
repo ($PROJECT_GIT_URL)."
- cd "$WORKING_DIR"
- if [ "$RELEASE_BRANCH" != "master" ]; then
- git checkout --track -b $RELEASE_BRANCH "origin/$RELEASE_BRANCH"
- fi
- [ "$?" -ne 0 ] && abort "Failed to checkout release branch
($RELEASE_BRANCH)."
- fi
fi
diff --git a/release.sh b/release.sh
index 43fef6a..2f583c9 100755
--- a/release.sh
+++ b/release.sh
@@ -28,7 +28,6 @@ set_variables()
TAG_PREFIX="RHQ"
MINIMUM_MAVEN_VERSION="2.1.0"
-
# Process command line args.
EXE=`basename $0`
@@ -183,17 +182,6 @@ if [ -d "$WORKING_DIR" ]; then
[ "$?" -ne 0 ] && abort "Failed to remove bogus working
directory ($WORKING_DIR)."
fi
fi
-if [ ! -d "$WORKING_DIR" ]; then
- echo "Cloning the $PROJECT_NAME git repo (this will take about 10-15
minutes)..."
- git clone "$PROJECT_GIT_URL" "$WORKING_DIR"
- [ "$?" -ne 0 ] && abort "Failed to clone $PROJECT_NAME git repo
($PROJECT_GIT_URL)."
- cd "$CLONE_DIR"
- if [ "$RELEASE_BRANCH" != "master" ]; then
- git checkout --track -b $RELEASE_BRANCH "origin/$RELEASE_BRANCH"
- fi
- [ "$?" -ne 0 ] && abort "Failed to checkout release branch
($RELEASE_BRANCH)."
-fi
-
# if this is a test build then create a temporary build branch off of RELEASE_BRANCH.
This allows checkins to
# continue in RELEASE_BRANCH without affecting the release plugin work, which will fail
if the branch contents
commit d1cf02447bccf23b270a21fe5acfe94f9393a4d2
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Wed Sep 28 13:33:26 2011 -0500
Move environment setup in a function to make the code more readable.
diff --git a/release.sh b/release.sh
index b64d762..43fef6a 100755
--- a/release.sh
+++ b/release.sh
@@ -18,117 +18,118 @@ usage()
abort "$@" "Usage: $EXE community|enterprise RELEASE_VERSION
DEVELOPMENT_VERSION RELEASE_BRANCH GIT_USERNAME test|production" "Example: $EXE
enterprise 3.0.0.GA 3.0.0-SNAPSHOT release-3.0.0 ips test"
}
+set_variables()
+{
+ # Constants
-if [ -n "$RELEASE_DEBUG" ]; then
- echo "Debug output is enabled."
- set -x
-fi
-
-
-# Constants
-
-PROJECT_NAME="rhq"
-PROJECT_DISPLAY_NAME="RHQ"
-PROJECT_GIT_WEB_URL="http://git.fedorahosted.org/git/?p=rhq/rhq.git"
-TAG_PREFIX="RHQ"
-MINIMUM_MAVEN_VERSION="2.1.0"
+ PROJECT_NAME="rhq"
+ PROJECT_DISPLAY_NAME="RHQ"
+
PROJECT_GIT_WEB_URL="http://git.fedorahosted.org/git/?p=rhq/rhq.git&...
+ TAG_PREFIX="RHQ"
+ MINIMUM_MAVEN_VERSION="2.1.0"
-# Process command line args.
+ # Process command line args.
-EXE=`basename $0`
-if [ "$#" -ne 6 ]; then
- usage
-fi
-RELEASE_TYPE="$1"
-if [ "$RELEASE_TYPE" != "community" ] && [
"$RELEASE_TYPE" != "enterprise" ]; then
- usage "Invalid release type: $RELEASE_TYPE (valid release types are
'community' or 'enterprise')"
-fi
-RELEASE_VERSION="$2"
-DEVELOPMENT_VERSION="$3"
-RELEASE_BRANCH="$4"
-GIT_USERNAME="$5"
-MODE="$6"
-if [ "$MODE" != "test" ] && [ "$MODE" !=
"production" ]; then
- usage "Invalid mode: $MODE (valid modes are 'test' or
'production')"
-fi
+ EXE=`basename $0`
+ if [ "$#" -ne 6 ]; then
+ usage
+ fi
+ RELEASE_TYPE="$1"
+ if [ "$RELEASE_TYPE" != "community" ] && [
"$RELEASE_TYPE" != "enterprise" ]; then
+ usage "Invalid release type: $RELEASE_TYPE (valid release types are
'community' or 'enterprise')"
+ fi
+ RELEASE_VERSION="$2"
+ DEVELOPMENT_VERSION="$3"
+ RELEASE_BRANCH="$4"
+ GIT_USERNAME="$5"
+ MODE="$6"
+ if [ "$MODE" != "test" ] && [ "$MODE" !=
"production" ]; then
+ usage "Invalid mode: $MODE (valid modes are 'test' or
'production')"
+ fi
-if [ "$MODE" = "production" ]; then
- if [ -z "$JBOSS_ORG_USERNAME" ] || [ -z "$JBOSS_ORG_PASSWORD" ];
then
- usage "In production mode,
jboss.org credentials must be specified via the
JBOSS_ORG_USERNAME and JBOSS_ORG_PASSWORD environment variables."
- fi
-fi
+ if [ "$MODE" = "production" ]; then
+ if [ -z "$JBOSS_ORG_USERNAME" ] || [ -z "$JBOSS_ORG_PASSWORD"
]; then
+ usage "In production mode,
jboss.org credentials must be specified via the
JBOSS_ORG_USERNAME and JBOSS_ORG_PASSWORD environment variables."
+ fi
+ fi
-# TODO: Check that JDK version is < 1.7.
+ # Set various environment variables.
-validate_java_6
+ MAVEN_OPTS="-Xms512M -Xmx1024M -XX:PermSize=128M -XX:MaxPermSize=256M"
+ export MAVEN_OPTS
-validate_java_5
-validate_maven
+ # Set various local variables.
-validate_git
+ if [ -n "$HUDSON_URL" ] && [ -n "$WORKSPACE" ]; then
+ echo "We appear to be running in a Hudson job."
+ WORKING_DIR="$WORKSPACE"
+ MAVEN_LOCAL_REPO_DIR="$HOME/.m2/hudson-release-$RELEASE_TYPE-repository"
+ MAVEN_SETTINGS_FILE="$HOME/.m2/hudson-$JOB_NAME-settings.xml"
+ elif [ -z "$WORKING_DIR" ]; then
+ WORKING_DIR="$HOME/release/rhq"
+ # MAVEN_LOCAL_REPO_DIR="$HOME/release/m2-repository"
+ MAVEN_LOCAL_REPO_DIR="$HOME/.m2/repository"
+ MAVEN_SETTINGS_FILE="$HOME/release/m2-settings.xml"
+ fi
+
PROJECT_GIT_URL="ssh://${GIT_USERNAME}@git.fedorahosted.org/git/rhq/rhq.git"
+
+ MAVEN_ARGS="--settings $MAVEN_SETTINGS_FILE --batch-mode --errors
-Penterprise,dist,release"
+ # TODO: We may eventually want to reenable tests for production releases.
+ #if [ "$MODE" = "test" ]; then
+ # MAVEN_ARGS="$MAVEN_ARGS -DskipTests=true"
+ #fi
+ MAVEN_ARGS="$MAVEN_ARGS -DskipTests=true"
+ if [ "$RELEASE_TYPE" = "enterprise" ]; then
+ MAVEN_ARGS="$MAVEN_ARGS -Dexclude-webdav "
+ #MAVEN_ARGS="$MAVEN_ARGS -Dexclude-webdav -Djava5.home=$JAVA5_HOME/jre"
+ fi
+ if [ -n "$RELEASE_DEBUG" ]; then
+ MAVEN_ARGS="$MAVEN_ARGS --debug"
+ fi
+ if [ -n "$RELEASE_ADDITIONAL_MAVEN_ARGS" ]; then
+ MAVEN_ARGS="$MAVEN_ARGS $RELEASE_ADDITIONAL_MAVEN_ARGS"
+ fi
-# Set various environment variables.
+ # TODO: We may eventually want to reenable publishing of enterprise artifacts.
+ #if [ "$MODE" = "production" ] && [
"$RELEASE_TYPE" = "community" ]; then
+ # MAVEN_RELEASE_PERFORM_GOAL="deploy"
+ #else
+ MAVEN_RELEASE_PERFORM_GOAL="install"
+ #fi
-MAVEN_OPTS="-Xms512M -Xmx1024M -XX:PermSize=128M -XX:MaxPermSize=256M"
-export MAVEN_OPTS
+ TAG_VERSION=`echo $RELEASE_VERSION | sed 's/\./_/g'`
+ RELEASE_TAG="${TAG_PREFIX}_${TAG_VERSION}"
-# Set various local variables.
-if [ -n "$HUDSON_URL" ] && [ -n "$WORKSPACE" ]; then
- echo "We appear to be running in a Hudson job."
- WORKING_DIR="$WORKSPACE"
- MAVEN_LOCAL_REPO_DIR="$HOME/.m2/hudson-release-$RELEASE_TYPE-repository"
- MAVEN_SETTINGS_FILE="$HOME/.m2/hudson-$JOB_NAME-settings.xml"
-elif [ -z "$WORKING_DIR" ]; then
- WORKING_DIR="$HOME/release/rhq"
-# MAVEN_LOCAL_REPO_DIR="$HOME/release/m2-repository"
- MAVEN_LOCAL_REPO_DIR="$HOME/.m2/repository"
- MAVEN_SETTINGS_FILE="$HOME/release/m2-settings.xml"
-fi
+ # Set the system character encoding to ISO-8859-1 to ensure i18log reads its
+ # messages and writes its resource bundle properties files in that encoding,
+ # since that is how the German and French I18NMessage annotation values are
+ # encoded and the encoding used by i18nlog to read in resource bundle
+ # property files.
+ LANG=en_US.iso8859
+ export LANG
+}
-PROJECT_GIT_URL="ssh://${GIT_USERNAME}@git.fedorahosted.org/git/rhq/rhq.git"
-
-MAVEN_ARGS="--settings $MAVEN_SETTINGS_FILE --batch-mode --errors
-Penterprise,dist,release"
-# TODO: We may eventually want to reenable tests for production releases.
-#if [ "$MODE" = "test" ]; then
-# MAVEN_ARGS="$MAVEN_ARGS -DskipTests=true"
-#fi
-MAVEN_ARGS="$MAVEN_ARGS -DskipTests=true"
-if [ "$RELEASE_TYPE" = "enterprise" ]; then
- MAVEN_ARGS="$MAVEN_ARGS -Dexclude-webdav "
- #MAVEN_ARGS="$MAVEN_ARGS -Dexclude-webdav -Djava5.home=$JAVA5_HOME/jre"
-fi
if [ -n "$RELEASE_DEBUG" ]; then
- MAVEN_ARGS="$MAVEN_ARGS --debug"
-fi
-if [ -n "$RELEASE_ADDITIONAL_MAVEN_ARGS" ]; then
- MAVEN_ARGS="$MAVEN_ARGS $RELEASE_ADDITIONAL_MAVEN_ARGS"
+ echo "Debug output is enabled."
+ set -x
fi
-# TODO: We may eventually want to reenable publishing of enterprise artifacts.
-#if [ "$MODE" = "production" ] && [ "$RELEASE_TYPE"
= "community" ]; then
-# MAVEN_RELEASE_PERFORM_GOAL="deploy"
-#else
- MAVEN_RELEASE_PERFORM_GOAL="install"
-#fi
+# TODO: Check that JDK version is < 1.7.
+validate_java_6
-TAG_VERSION=`echo $RELEASE_VERSION | sed 's/\./_/g'`
-RELEASE_TAG="${TAG_PREFIX}_${TAG_VERSION}"
+validate_java_5
+validate_maven
-# Set the system character encoding to ISO-8859-1 to ensure i18log reads its
-# messages and writes its resource bundle properties files in that encoding,
-# since that is how the German and French I18NMessage annotation values are
-# encoded and the encoding used by i18nlog to read in resource bundle
-# property files.
-LANG=en_US.iso8859
-export LANG
+validate_git
+set_variables
# Print out a summary of the environment.
echo "========================== Environment Variables
=============================="
commit 55411e1b5520b9f4e7ebab5e06e880f77e9c1b59
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Wed Sep 28 11:08:38 2011 -0500
Take out the settings file from the actual release script. No reason to override
anything, the settings have should have been pre-configured to support a release.
diff --git a/release.sh b/release.sh
index 9ba123e..b64d762 100755
--- a/release.sh
+++ b/release.sh
@@ -1,9 +1,7 @@
#!/bin/sh
-
source `dirname $0`/rhq_bash.lib
-
# Functions
abort()
@@ -153,54 +151,6 @@ print_program_versions "${program_versions[@]}"
echo
"==============================================================================="
-
-# Create the Maven settings file.
-cat <<EOF >"${MAVEN_SETTINGS_FILE}"
-<settings>
- <localRepository>$MAVEN_LOCAL_REPO_DIR</localRepository>
-
- <profiles>
-
- <profile>
- <id>release</id>
- <properties>
-
<rhq.test.ds.server-name>hudson-qe.rhq.rdu.redhat.com</rhq.test.ds.server-name>
- <rhq.test.ds.port>5432</rhq.test.ds.port>
- <rhq.test.ds.db-name>rhq_release_tag</rhq.test.ds.db-name>
-
<rhq.test.ds.connection-url>jdbc:postgresql://hudson-qe.rhq.rdu.redhat.com:5432/rhq_release_tag</rhq.test.ds.connection-url>
- <rhq.test.ds.user-name>rhqadmin</rhq.test.ds.user-name>
- <rhq.test.ds.password>rhqadmin</rhq.test.ds.password>
- <rhq.test.ds.type-mapping>PostgreSQL</rhq.test.ds.type-mapping>
-
<rhq.test.ds.driver-class>org.postgresql.Driver</rhq.test.ds.driver-class>
-
<rhq.test.ds.xa-datasource-class>org.postgresql.xa.PGXADataSource</rhq.test.ds.xa-datasource-class>
-
<rhq.test.ds.hibernate-dialect>org.hibernate.dialect.PostgreSQLDialect</rhq.test.ds.hibernate-dialect>
- <!-- quartz properties -->
-
<rhq.test.quartz.driverDelegateClass>org.quartz.impl.jdbcjobstore.PostgreSQLDelegate</rhq.test.quartz.driverDelegateClass>
- <rhq.test.quartz.selectWithLockSQL>SELECT * FROM {0}LOCKS ROWLOCK WHERE
LOCK_NAME = ? FOR UPDATE</rhq.test.quartz.selectWithLockSQL>
-
<rhq.test.quartz.lockHandlerClass>org.quartz.impl.jdbcjobstore.StdRowLockSemaphore</rhq.test.quartz.lockHandlerClass>
-
- <DatabaseTest.nofail>true</DatabaseTest.nofail>
-
-
<rhq.testng.excludedGroups>agent-comm,comm-client,postgres-plugin,native-system</rhq.testng.excludedGroups>
-
- <gwt-plugin.extraJvmArgs>-Xms512M -Xmx1024M -XX:PermSize=256M
-XX:MaxPermSize=512M -Djava.io.tmpdir=gwt-tmp</gwt-plugin.extraJvmArgs>
- </properties>
- </profile>
-
- </profiles>
-
- <!-- This is used by the deploy plugin to publish release artifacts to the
jboss.org Nexus repo. -->
- <servers>
- <server>
- <id>jboss-releases-repository</id>
- <username>$JBOSS_ORG_USERNAME</username>
- <password>$JBOSS_ORG_PASSWORD</password>
- </server>
- </servers>
-
-</settings>
-EOF
-
# Clone and/or checkout the source from git.
if [ -d "$WORKING_DIR" ]; then