Skip to content
Permalink
Browse files
HBASE-19560 Add a make_rc.sh
Trim down core HBase's make_rc.sh for 3rdparty's use

Signed-off-by: Mike Drob <mdrob@apache.org>
  • Loading branch information
joshelser committed Mar 19, 2018
1 parent c685d9a commit f92dabc61885104925a093b5aa917670dedc3d29
Showing 1 changed file with 84 additions and 0 deletions.
@@ -0,0 +1,84 @@
#!/usr/bin/env 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.

# Script that assembles all you need to make an RC. Does build of the tar.gzs
# which it stashes into a dir above $(pwd) named for the script with a
# timestamp suffix. Deploys builds to maven.
#
# To finish, check what was build. If good, copy to dist.apache.org/dev and
# close the maven repos. Call a vote.
#
# Presumes your settings.xml all set up so can sign artifacts published to mvn, etc.

set -e

# Script checks out a tag, cleans the checkout and then builds src and bin
# tarballs. It then deploys to the apache maven repository.
# Presumes run from git dir.

# Need a git tag to build.
if [ "$1" = "" ]
then
echo -n "Usage: $0 TAG_TO_PACKAGE"
exit 1
fi
git_tag=$1

# Set mvn
mvn=mvn
if [ "$MAVEN" != "" ]; then
mvn="${MAVEN}"
fi

# Ensure we are inside a git repo before making progress
# The below will fail if outside git.
git -C . rev-parse

# Checkout git_tag
git checkout "${git_tag}"

# Get mvn project version
#shellcheck disable=SC2016
version=$(${mvn} -q -N -Dexec.executable="echo" -Dexec.args='${project.version}' exec:exec)
hbase_name="hbase-thirdparty-${version}"

# Make a dir to save tgzs into.
d=`date -u +"%Y%m%dT%H%M%SZ"`
output_dir="${TMPDIR}/$hbase_name.$d"
mkdir -p "${output_dir}"

# Make sure all clean.
git clean -f -x -d
${mvn} clean

# Run a rat check.
${mvn} apache-rat:check

# Build src.
git archive --format=tar.gz --output="${output_dir}/${hbase_name}-src.tar.gz" --prefix="${hbase_name}/" "${git_tag}"

# Deploy to mvn repository
${mvn} clean deploy -Papache-release -Prelease

# Do sha512
cd ${output_dir}
for i in *.tar.gz; do echo $i; gpg --print-md SHA512 $i > $i.sha512 ; done

echo "Check the content of ${output_dir}. If good, sign and push to dist.apache.org/dev"
echo " e.g. gpg --armor --output ${hbase_name}-src.tar.gz.asc --detach-sig ${hbase_name}-src.tar.gz "
echo "Also, check the content deployed to maven. If good, close the repo and record links of temporary staging repo"

0 comments on commit f92dabc

Please sign in to comment.