blob: bdee0e575ea1550652b6240faae4328fb1c16073 [file] [log] [blame]
#!/bin/bash -xe
################################
#
# Prep
#
################################
# variables, with defaults
[ "x${cassandra_builds_dir}" != "x" ] || cassandra_builds_dir="cassandra-builds"
# pre-conditions
command -v ant >/dev/null 2>&1 || { echo >&2 "ant needs to be installed"; exit 1; }
command -v pip >/dev/null 2>&1 || { echo >&2 "pip needs to be installed"; exit 1; }
command -v virtualenv >/dev/null 2>&1 || { echo >&2 "virtualenv needs to be installed"; exit 1; }
command -v docker >/dev/null 2>&1 || { echo >&2 "docker needs to be installed"; exit 1; }
(docker info >/dev/null 2>&1) || { echo >&2 "docker needs to running"; exit 1; }
[ -f "build.xml" ] || { echo >&2 "build.xml must exist"; exit 1; }
[ -d "${cassandra_builds_dir}" ] || { echo >&2 "cassandra-builds directory must exist"; exit 1; }
# Sphinx is needed for the gen-doc target
virtualenv venv
source venv/bin/activate
# setuptools 45.0.0 requires python 3.5+
python -m pip install "setuptools<45" Sphinx sphinx_rtd_theme
################################
#
# Main
#
################################
# Setup JDK
java_version=$(java -version 2>&1 | awk -F '"' '/version/ {print $2}' | awk -F. '{print $1}')
if [ "$java_version" -ge 11 ]; then
java_version="11"
export CASSANDRA_USE_JDK11=true
if ! grep -q CASSANDRA_USE_JDK11 build.xml ; then
echo "Skipping build. JDK11 not supported against $(grep 'property\s*name=\"base.version\"' build.xml |sed -ne 's/.*value=\"\([^"]*\)\".*/\1/p')"
exit 0
fi
else
java_version="8"
fi
# Loop to prevent failure due to maven-ant-tasks not downloading a jar..
set +e # disable immediate exit from this point
for x in $(seq 1 3); do
ant clean artifacts
RETURN="$?"
if [ "${RETURN}" -eq "0" ]; then
# Run eclipse-warnings if build was successful
ant eclipse-warnings
RETURN="$?"
if [ "${RETURN}" -eq "0" ]; then
set -e
# build debian and rpm packages
head_commit=`git log --pretty=oneline -1 | cut -d " " -f 1`
declare -x cassandra_builds_dir="${cassandra_builds_dir}"
declare -x CASSANDRA_GIT_URL="`git remote get-url origin`"
# debian
deb_dir="`pwd`/build" ${cassandra_builds_dir}/build-scripts/cassandra-deb-packaging.sh ${head_commit} ${java_version}
# rpm
rpm_dir="`pwd`/build" ${cassandra_builds_dir}/build-scripts/cassandra-rpm-packaging.sh ${head_commit} ${java_version}
fi
break
fi
done
################################
#
# Clean
#
################################
# /virtualenv
deactivate
exit "${RETURN}"