From b58432254530546f4e195de81ff863958f676e1d Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Wed, 29 Jun 2016 15:52:15 +0200 Subject: [PATCH] DATACASS-307 - Run TravisCI build against various Cassandra versions. We now run TravisCI builds against various Cassandra versions. --- .gitignore | 3 +++ .travis.yml | 14 +++++++++- setup-cassandra.sh | 67 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 83 insertions(+), 1 deletion(-) create mode 100755 setup-cassandra.sh diff --git a/.gitignore b/.gitignore index 7a324c539..bfbc40e72 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,6 @@ build .settings .cassandra .idea +download +work + diff --git a/.travis.yml b/.travis.yml index 9a0980bde..3d7403c77 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,10 +7,22 @@ env: - PROFILE=spring41-next - PROFILE=spring42 - PROFILE=spring42-next + - PROFILE=spring43 - PROFILE=spring43-next + - PROFILE=external-cassandra CASSANDRA_VERSION=2.2.6 + - PROFILE=external-cassandra CASSANDRA_VERSION=3.0.7 + - PROFILE=external-cassandra CASSANDRA_VERSION=3.2 + - PROFILE=external-cassandra CASSANDRA_VERSION=3.3 + - PROFILE=external-cassandra CASSANDRA_VERSION=3.4 + - PROFILE=external-cassandra CASSANDRA_VERSION=3.5 + - PROFILE=external-cassandra CASSANDRA_VERSION=3.6 + - PROFILE=external-cassandra CASSANDRA_VERSION=3.7 cache: directories: - $HOME/.m2 + - 'download' sudo: false -install: true +before_install: + - sed -i.bak -e 's|https://nexus.codehaus.org/snapshots/|https://oss.sonatype.org/content/repositories/codehaus-snapshots/|g' ~/.m2/settings.xml +install: if [ ! -z ${CASSANDRA_VERSION} ]; then ./setup-cassandra.sh; fi; script: mvn clean install -P${PROFILE} -Dmaven.javadoc.skip=true diff --git a/setup-cassandra.sh b/setup-cassandra.sh new file mode 100755 index 000000000..b639923b7 --- /dev/null +++ b/setup-cassandra.sh @@ -0,0 +1,67 @@ +#!/usr/bin/env bash + +if [ -z ${CASSANDRA_VERSION+x} ]; then + CASSANDRA_VERSION=3.0.7 +fi + +if [[ ! -d download ]] ; then + mkdir -p download +fi + +FILENAME="apache-cassandra-${CASSANDRA_VERSION}-bin.tar.gz" + +echo "[INFO] Downloading ${FILENAME}" +if [[ ! -f download/${FILENAME} ]] ; then + mkdir -p download + wget https://archive.apache.org/dist/cassandra/${CASSANDRA_VERSION}/${FILENAME} -O download/${FILENAME} + if [[ $? != 0 ]] ; then + echo "[ERROR] Download failed" + exit 1 + fi +fi + + +if [[ ! -d work ]] ; then + mkdir -p work +fi + +BASENAME=apache-cassandra-${CASSANDRA_VERSION} +if [[ ! -d work/${BASENAME} ]] ; then + + echo "[INFO] Extracting ${FILENAME}" + mkdir -p work/${BASENAME} + cd work + + tar xzf ../download/${FILENAME} + if [[ $? != 0 ]] ; then + echo "[ERROR] Extraction failed" + exit 1 + fi + cd .. +fi + +cd work/${BASENAME} + +echo "[INFO] Cleaning data directory" +rm -Rf data +mkdir -p data + +echo "[INFO] Starting Apache Cassandra ${CASSANDRA_VERSION}" +export MAX_HEAP_SIZE=1G +export HEAP_NEWSIZE=100M +bin/cassandra + +for start in {1..20} +do + nc -w 1 localhost 9042