mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
154 lines
5.1 KiB
Bash
Executable File
154 lines
5.1 KiB
Bash
Executable File
#!/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.
|
|
|
|
version='TESTBUILD'
|
|
sourcedir=~/cloudstack-primate
|
|
outputdir=/tmp/cloudstack-primate-build/
|
|
branch='master'
|
|
tag='no'
|
|
certid='X'
|
|
committosvn='X'
|
|
|
|
usage(){
|
|
echo "usage: $0 -v version [-b branch] [-s source dir] [-o output dir] [-t] [-u] [-c] [-h]"
|
|
echo " -v sets the version"
|
|
echo " -b sets the branch (defaults to 'master')"
|
|
echo " -s sets the source directory (defaults to $sourcedir)"
|
|
echo " -o sets the output directory (defaults to $outputdir)"
|
|
echo " -t tags the git repo with the version"
|
|
echo " -u sets the certificate ID to sign with (if not provided, the default key is attempted)"
|
|
echo " -c commits build artifacts to cloudstack dev dist dir in svn"
|
|
echo " -h"
|
|
}
|
|
|
|
while getopts v:s:o:b:u:tch opt
|
|
do
|
|
case "$opt" in
|
|
v) version="$OPTARG";;
|
|
s) sourcedir="$OPTARG";;
|
|
o) outputdir="$OPTARG";;
|
|
b) branch="$OPTARG";;
|
|
t) tag="yes";;
|
|
u) certid="$OPTARG";;
|
|
c) committosvn="yes";;
|
|
h) usage
|
|
exit 0;;
|
|
/?) # unknown flag
|
|
usage
|
|
exit 1;;
|
|
esac
|
|
done
|
|
shift `expr $OPTIND - 1`
|
|
|
|
if [ $version == "TESTBUILD" ]; then
|
|
echo >&2 "A version must be specified with the -v option: $0 -v 1.0.0.RC1"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Using version: $version"
|
|
echo "Using source directory: $sourcedir"
|
|
echo "Using output directory: $outputdir"
|
|
echo "Using branch: $branch"
|
|
if [ "$tag" == "yes" ]; then
|
|
if [ "$certid" == "X" ]; then
|
|
echo "Tagging the branch with the version number, and signing the branch with your default certificate."
|
|
else
|
|
echo "Tagging the branch with the version number, and signing the branch with certificate ID $certid."
|
|
fi
|
|
else
|
|
echo "The branch will not be tagged. You should consider doing this."
|
|
fi
|
|
|
|
echo $PWD
|
|
|
|
exit
|
|
|
|
if [ -d "$outputdir" ]; then
|
|
rm -r $outputdir/*
|
|
else
|
|
mkdir $outputdir
|
|
fi
|
|
|
|
cd $sourcedir
|
|
|
|
echo 'checking out correct branch'
|
|
git checkout $branch
|
|
|
|
git clean -f
|
|
|
|
export commitsh=`git show HEAD | head -n 1 | cut -d ' ' -f 2`
|
|
echo "releasing as $commitsh"
|
|
|
|
echo 'archiving'
|
|
git archive --format=tar --prefix=apache-cloudstack-primate-$version-src/ $branch > $outputdir/apache-cloudstack-primate-$version-src.tar
|
|
bzip2 $outputdir/apache-cloudstack-primate-$version-src.tar
|
|
|
|
cd $outputdir
|
|
echo 'armor'
|
|
if [ "$certid" == "X" ]; then
|
|
gpg -v --armor --output apache-cloudstack-primate-$version-src.tar.bz2.asc --detach-sig apache-cloudstack-primate-$version-src.tar.bz2
|
|
else
|
|
gpg -v --default-key $certid --armor --output apache-cloudstack-primate-$version-src.tar.bz2.asc --detach-sig apache-cloudstack-primate-$version-src.tar.bz2
|
|
fi
|
|
|
|
echo 'md5'
|
|
gpg -v --print-md MD5 apache-cloudstack-primate-$version-src.tar.bz2 > apache-cloudstack-primate-$version-src.tar.bz2.md5
|
|
|
|
echo 'sha512'
|
|
gpg -v --print-md SHA512 apache-cloudstack-primate-$version-src.tar.bz2 > apache-cloudstack-primate-$version-src.tar.bz2.sha512
|
|
|
|
echo 'verify'
|
|
gpg -v --verify apache-cloudstack-primate-$version-src.tar.bz2.asc apache-cloudstack-primate-$version-src.tar.bz2
|
|
|
|
if [ "$tag" == "yes" ]; then
|
|
echo 'tag'
|
|
cd $sourcedir
|
|
if [ "$certid" == "X" ]; then
|
|
git tag -s $version -m "Tagging release $version on branch $branch."
|
|
else
|
|
git tag -u $certid -s $version -m "Tagging release $version on branch $branch."
|
|
fi
|
|
fi
|
|
|
|
if [ "$committosvn" == "yes" ]; then
|
|
echo 'committing artifacts to svn'
|
|
rm -Rf /tmp/cloudstack-dev-dist
|
|
cd /tmp
|
|
svn co https://dist.apache.org/repos/dist/dev/cloudstack/ cloudstack-dev-dist
|
|
cd cloudstack-dev-dist
|
|
if [ -d "primate-$version" ]; then
|
|
cd primate-$version
|
|
svn rm *
|
|
else
|
|
mkdir primate-$version
|
|
svn add primate-$version
|
|
cd primate-$version
|
|
fi
|
|
cp $outputdir/apache-cloudstack-primate-$version-src.tar.bz2 .
|
|
cp $outputdir/apache-cloudstack-primate-$version-src.tar.bz2.asc .
|
|
cp $outputdir/apache-cloudstack-primate-$version-src.tar.bz2.md5 .
|
|
cp $outputdir/apache-cloudstack-primate-$version-src.tar.bz2.sha512 .
|
|
svn add apache-cloudstack-primate-$version-src.tar.bz2
|
|
svn add apache-cloudstack-primate-$version-src.tar.bz2.asc
|
|
svn add apache-cloudstack-primate-$version-src.tar.bz2.md5
|
|
svn add apache-cloudstack-primate-$version-src.tar.bz2.sha512
|
|
svn commit -m "Committing release candidate artifacts for $version to dist/dev/cloudstack in preparation for release vote"
|
|
fi
|
|
|
|
echo "completed. use commit-sh of $commitsh when starting the VOTE thread"
|