diff --git a/scripts/README.md b/scripts/README.md new file mode 100644 index 0000000000..88a50123e6 --- /dev/null +++ b/scripts/README.md @@ -0,0 +1,3 @@ +# jclouds Development and Release Scripts + +This is a collection of scripts that aid in the development and release of jclouds itself. \ No newline at end of file diff --git a/scripts/release/fetch_jclouds_rc.sh b/scripts/release/fetch_jclouds_rc.sh new file mode 100755 index 0000000000..5ac9c3ddd3 --- /dev/null +++ b/scripts/release/fetch_jclouds_rc.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +# +# 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. +# + +# Usage examples: +# +# Verify a release candidate +# $ ./fetch_jclouds_rc.sh 2.0.0 https://dist.apache.org/repos/dist/dev/jclouds /tmp + +VERSION=$1 +REPO=$2 +DL_DIR=$3 + +for a in ${REPO}/org/apache/jclouds/jclouds/${VERSION}/jclouds-${VERSION}-source-release.tar.gz \ + ${REPO}/org/apache/jclouds/labs/jclouds-labs/${VERSION}/jclouds-labs-${VERSION}-source-release.tar.gz \ + ${REPO}/org/apache/jclouds/chef/jclouds-chef/${VERSION}/jclouds-chef-${VERSION}-source-release.tar.gz \ + ${REPO}/org/apache/jclouds/jclouds-karaf/${VERSION}/jclouds-karaf-${VERSION}-source-release.tar.gz \ + ${REPO}/org/apache/jclouds/cli/jclouds-cli/${VERSION}/jclouds-cli-${VERSION}-source-release.tar.gz \ + ${REPO}/org/apache/jclouds/labs/jclouds-labs-openstack/${VERSION}/jclouds-labs-openstack-${VERSION}-source-release.tar.gz \ + ${REPO}/org/apache/jclouds/labs/jclouds-labs-aws/${VERSION}/jclouds-labs-aws-${VERSION}-source-release.tar.gz \ + ${REPO}/org/apache/jclouds/labs/jclouds-labs-google/${VERSION}/jclouds-labs-google-${VERSION}-source-release.tar.gz; do + + wget -P ${DL_DIR} --no-check-certificate ${a}{,.asc,.md5,.sha1}; + +done diff --git a/scripts/release/verify_jclouds_rc.sh b/scripts/release/verify_jclouds_rc.sh new file mode 100755 index 0000000000..b49c97716d --- /dev/null +++ b/scripts/release/verify_jclouds_rc.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +# +# 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. +# + +# Usage examples: +# +# Verify a release candidate +# $ ./verify_jclouds_rc.sh 2.0.0-rc1 + +set -ex + +RELEASE=$1 + +if [ -e /sbin/md5 ]; then + MD5SUM="/sbin/md5 -q" +else + MD5SUM=/usr/bin/md5sum +fi + +if [ -e /sbin/sha1 ]; then + SHA1SUM=/sbin/sha1 +elif [ -e /usr/bin/shasum ]; then + SHA1SUM=/usr/bin/shasum +else + SHA1SUM=/usr/bin/sha1sum +fi + +curl http://www.apache.org/dist/jclouds/KEYS | gpg --import + +svn co https://dist.apache.org/repos/dist/dev/jclouds/$RELEASE + +cd $RELEASE + +for tarball in `ls *.tar.gz`; do + # Verify md5sum + diff -wB <($MD5SUM ${tarball} | perl -pe 's/(.*?)\s.*/$1/') <(cat ${tarball}.md5); + # Verify sha1sum + diff -wq <($SHA1SUM ${tarball}|perl -pe 's/(.*?)\s.*/$1/') <(cat ${tarball}.sha1); + # verify signature + gpg --verify ${tarball}.asc ${tarball}; + # Untar + tar -xzf ${tarball}; +done + +for d in jclouds jclouds-labs jclouds-labs-openstack jclouds-labs-aws jclouds-labs-google jclouds-chef jclouds-karaf jclouds-cli; do + reldir=${d}-$(echo $RELEASE | perl -pe 's/(.*)-rc.*/$1/'); + if [ -d "${reldir}" ]; then + cd ${reldir}; + mvn clean install; + cd ..; + fi +done