summaryrefslogtreecommitdiff
path: root/qpid/bin/release.sh
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/bin/release.sh')
-rwxr-xr-xqpid/bin/release.sh282
1 files changed, 282 insertions, 0 deletions
diff --git a/qpid/bin/release.sh b/qpid/bin/release.sh
new file mode 100755
index 0000000000..949cb57358
--- /dev/null
+++ b/qpid/bin/release.sh
@@ -0,0 +1,282 @@
+#!/bin/sh
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you 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.
+#
+#
+# Script to pull together an Apache Release
+#
+
+usage()
+{
+ echo "Usage: release.sh <svn-path> <svn-revision> <version> [options]"
+ echo
+ echo "Options: Default : --prepare --svn --all --sign"
+ echo "--help |-h : Show this help"
+ echo "--prepare : Export specified tree from source control"
+ echo "--svn : Export from svn"
+ echo "--git : Export from git repository with svn metadata"
+ echo "--clean-all : Remove build artefacts and downloaded svn tree"
+ echo "--clean : Remove built artefacts"
+ echo "--all |-a : Generate all artefacts"
+ echo "--source|-e : Generate the source artefact"
+ echo "--cpp |-c : Generate the CPP artefacts"
+ echo "--dotnet|-d : Generate the dotnet artefacts"
+ echo "--java |-j : Generate the java artefacts"
+ echo "--ruby |-r : Generate the ruby artefacts"
+ echo "--python|-p : Generate the python artefacts"
+ echo "--wcf |-w : Generate the WCF artefacts"
+ echo "--tools |-t : Generate the tools artefacts"
+ echo "--qmf |-q : Generate the QMF artefacts"
+ echo "--source|-e : Generate the source artefact"
+ echo "--sign |-s : Sign generated artefacts"
+ echo "--upload|-u : Upload the artifacts directory to people.apache.org as qpid-\$VER"
+ echo
+}
+
+REPO="SVN"
+for arg in $* ; do
+ case $arg in
+ --help|-h)
+ HELP="HELP"
+ ;;
+ --prepare)
+ PREPARE="PREPARE"
+ ;;
+ --svn)
+ REPO="SVN"
+ ;;
+ --git)
+ REPO="GIT"
+ ;;
+ --clean-all)
+ CLEAN="CLEAN"
+ CLEAN_ARTIFACTS="CLEAN_ARTIFACTS"
+ ;;
+ --clean)
+ CLEAN_ARTIFACTS="CLEAN_ARTIFACTS"
+ ;;
+ --sign|-s)
+ SIGN="SIGN"
+ ;;
+ --all|-a)
+ CPP="CPP"
+ JAVA="JAVA"
+ PYTHON="PYTHON"
+ WCF="WCF"
+ TOOLS="TOOLS"
+ QMF="QMF"
+ SOURCE="SOURCE"
+ ;;
+ --cpp|-c)
+ CPP="CPP"
+ ;;
+ --dotnet|-d)
+ DOTNET="DOTNET"
+ ;;
+ --java|-j)
+ JAVA="JAVA"
+ ;;
+ --ruby|-r)
+ RUBY="RUBY"
+ ;;
+ --python|-p)
+ PYTHON="PYTHON"
+ ;;
+ --wcf|-w)
+ WCF="WCF"
+ ;;
+ --tools|-t)
+ TOOLS="TOOLS"
+ ;;
+ --qmf|-q)
+ QMF="QMF"
+ ;;
+ --source|-e)
+ SOURCE="SOURCE"
+ ;;
+ --upload|-u)
+ UPLOAD="UPLOAD"
+ ;;
+ *)
+ if [ -z "$SVN" ] ; then
+ SVN=$arg
+ continue
+ fi
+
+ if [ -z "$REV" ] ; then
+ REV=$arg
+ continue
+ fi
+
+ if [ -z "$VER" ] ; then
+ VER=$arg
+ continue
+ fi
+ ;;
+ esac
+done
+
+if [ -n "${HELP}" ] ; then
+ usage
+ exit 0
+fi
+
+if [ -z "$SVN" -o -z "$REV" -o -z "$VER" ]; then
+ echo "Usage: release.sh <svn-path> <svn-revision> <version>"
+ exit 1
+fi
+
+echo SVN:$SVN
+echo REV:$REV
+echo VER:$VER
+
+# If nothing is specified then do it all
+if [ -z "${CLEAN}${PREPARE}${CPP}${DOTNET}${JAVA}${RUBY}${PYTHON}${WCF}${SOURCE}${SIGN}${UPLOAD}" ] ; then
+ PREPARE="PREPARE"
+ CPP="CPP"
+ DOTNET="DOTNET"
+ JAVA="JAVA"
+ RUBY="RUBY"
+ PYTHON="PYTHON"
+ WCF="WCF"
+ SOURCE="SOURCE"
+
+ SIGN="SIGN"
+fi
+
+set -xe
+
+if [ "CLEAN" == "$CLEAN" ] ; then
+ rm -rf qpid-${VER}
+fi
+
+if [ "CLEAN_ARTIFACTS" == "$CLEAN_ARTIFACTS" ] ; then
+ rm -rf artifacts
+fi
+
+if [ "PREPARE" == "$PREPARE" ] ; then
+ mkdir artifacts
+ case ${REPO} in
+ SVN)
+ URL=https://svn.apache.org/repos/asf/qpid/${SVN}
+ svn export -r ${REV} ${URL} qpid-${VER}
+ echo ${URL} ${REV} > artifacts/qpid-${VER}.svnversion
+ ;;
+ GIT)
+ URL=${SVN}
+ GITREV=$(GIT_DIR=${URL} git svn find-rev r${REV})
+ git archive --remote=${URL} ${GITREV} | tar xvf -
+ mv qpid qpid-${VER}
+ echo ${REV} > artifacts/qpid-${VER}.svnversion
+ ;;
+ esac
+fi
+
+if [ "SOURCE" == "$SOURCE" ] ; then
+ tar -czf artifacts/qpid-${VER}.tar.gz qpid-${VER}
+fi
+
+if [ "RUBY" == "$RUBY" ] ; then
+ tar -czf artifacts/qpid-ruby-${VER}.tar.gz qpid-${VER}/ruby qpid-${VER}/specs
+fi
+
+if [ "PYTHON" == "$PYTHON" ] ; then
+ tar -czf artifacts/qpid-python-${VER}.tar.gz qpid-${VER}/python qpid-${VER}/specs
+fi
+
+if [ "WCF" == "$WCF" ] ; then
+ zip -rq artifacts/qpid-wcf-${VER}.zip qpid-${VER}/wcf
+fi
+
+if [ "CPP" == "$CPP" ] ; then
+ pushd qpid-${VER}/cpp
+ ./bootstrap
+ ./configure
+ make dist -j2
+ popd
+
+ cp qpid-${VER}/cpp/*.tar.gz artifacts/qpid-cpp-${VER}.tar.gz
+fi
+
+if [ "JAVA" == "$JAVA" ] ; then
+ pushd qpid-${VER}/java
+ ant build release release-bin release-mvn -Dsvnversion.output=${REV} -Dmaven.snapshot=false
+ popd
+
+ cp qpid-${VER}/java/release/*.tar.gz artifacts/qpid-java-${VER}.tar.gz
+ cp qpid-${VER}/java/broker/release/*.tar.gz artifacts/qpid-java-broker-${VER}.tar.gz
+ cp qpid-${VER}/java/client/release/*.tar.gz artifacts/qpid-java-client-${VER}.tar.gz
+ #cp qpid-${VER}/java/client/example/release/*.tar.gz
+ cp qpid-${VER}/java/management/eclipse-plugin/release/*.tar.gz qpid-${VER}/java/management/eclipse-plugin/release/*.zip artifacts/
+
+ # copy the Maven artifacts
+ cp -a qpid-${VER}/java/client/release/maven artifacts/
+ cp -a qpid-${VER}/java/common/release/maven artifacts/
+fi
+
+if [ "DOTNET" == "$DOTNET" ] ; then
+ pushd qpid-${VER}/dotnet
+ cd Qpid.Common
+ ant
+ cd ..
+ ./build-nant-release mono-2.0
+
+ cd client-010/gentool
+ ant
+ cd ..
+ nant -t:mono-2.0 release-pkg
+ popd
+
+ cp qpid-${VER}/dotnet/bin/mono-2.0/release/*.zip artifacts/qpid-dotnet-0-8-${VER}.zip
+ cp qpid-${VER}/dotnet/client-010/bin/mono-2.0/debug/*.zip artifacts/qpid-dotnet-0-10-${VER}.zip
+fi
+
+if [ "TOOLS" = "$TOOLS" ] ; then
+ pushd qpid-${VER}/tools
+
+ python setup.py sdist
+
+ popd
+
+ cp qpid-${VER}/tools/dist/*.tar.gz artifacts/qpid-tools-${VER}.tar.gz
+fi
+
+if [ "QMF" = "$QMF" ]; then
+ pushd qpid-${VER}/extras/qmf
+
+ python setup.py sdist
+
+ popd
+
+ cp qpid-${VER}/extras/qmf/dist/*.tar.gz artifacts/qpid-qmf-${VER}.tar.gz
+fi
+
+if [ "SIGN" == "$SIGN" ] ; then
+ pushd artifacts
+ sha1sum *.zip *.gz *.svnversion > SHA1SUM
+ if [ ! -z $SIGNING_KEY ] ; then
+ KEYOPTION="--default-key $SIGNING_KEY"
+ fi
+ for i in `find . | egrep 'jar$|pom$|gz$|zip$|svnversion$|SHA1SUM'`; do gpg --sign --armor --detach $KEYOPTION $i; done;
+ popd
+fi
+
+if [ "UPLOAD" == "$UPLOAD" ] ; then
+ scp -r artifacts people.apache.org:qpid-${VER}
+fi