You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ro...@apache.org on 2021/07/27 07:02:29 UTC
[cloudstack-go] branch main updated: performrelease: add script to
assist with cutting RC
This is an automated email from the ASF dual-hosted git repository.
rohit pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cloudstack-go.git
The following commit(s) were added to refs/heads/main by this push:
new 2dcde91 performrelease: add script to assist with cutting RC
2dcde91 is described below
commit 2dcde918ce6b0aaa27f8d9ca2b89922af2f7bc3a
Author: Rohit Yadav <ro...@shapeblue.com>
AuthorDate: Tue Jul 27 12:31:45 2021 +0530
performrelease: add script to assist with cutting RC
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>
---
performrelease.sh | 149 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 149 insertions(+)
diff --git a/performrelease.sh b/performrelease.sh
new file mode 100755
index 0000000..28ab01d
--- /dev/null
+++ b/performrelease.sh
@@ -0,0 +1,149 @@
+#!/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-go-sdk
+outputdir=/tmp/cloudstack-go-sdk-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: performrelease.sh -v 2.10.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
+
+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-go-sdk-$version-src/ $branch > $outputdir/apache-cloudstack-go-sdk-$version-src.tar
+bzip2 $outputdir/apache-cloudstack-go-sdk-$version-src.tar
+
+cd $outputdir
+echo 'armor'
+if [ "$certid" == "X" ]; then
+ gpg -v --armor --output apache-cloudstack-go-sdk-$version-src.tar.bz2.asc --detach-sig apache-cloudstack-go-sdk-$version-src.tar.bz2
+else
+ gpg -v --default-key $certid --armor --output apache-cloudstack-go-sdk-$version-src.tar.bz2.asc --detach-sig apache-cloudstack-go-sdk-$version-src.tar.bz2
+fi
+
+echo 'md5'
+gpg -v --print-md MD5 apache-cloudstack-go-sdk-$version-src.tar.bz2 > apache-cloudstack-go-sdk-$version-src.tar.bz2.md5
+
+echo 'sha512'
+gpg -v --print-md SHA512 apache-cloudstack-go-sdk-$version-src.tar.bz2 > apache-cloudstack-go-sdk-$version-src.tar.bz2.sha512
+
+echo 'verify'
+gpg -v --verify apache-cloudstack-go-sdk-$version-src.tar.bz2.asc apache-cloudstack-go-sdk-$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 "go-sdk-$version" ]; then
+ cd go-sdk-$version
+ svn rm *
+ else
+ mkdir go-sdk-$version
+ svn add go-sdk-$version
+ cd go-sdk-$version
+ fi
+ cp $outputdir/apache-cloudstack-go-sdk-$version-src.tar.bz2 .
+ cp $outputdir/apache-cloudstack-go-sdk-$version-src.tar.bz2.asc .
+ cp $outputdir/apache-cloudstack-go-sdk-$version-src.tar.bz2.md5 .
+ cp $outputdir/apache-cloudstack-go-sdk-$version-src.tar.bz2.sha512 .
+ svn add apache-cloudstack-go-sdk-$version-src.tar.bz2
+ svn add apache-cloudstack-go-sdk-$version-src.tar.bz2.asc
+ svn add apache-cloudstack-go-sdk-$version-src.tar.bz2.md5
+ svn add apache-cloudstack-go-sdk-$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"