mirror of https://github.com/apache/druid.git
137 lines
3.2 KiB
Bash
Executable File
137 lines
3.2 KiB
Bash
Executable File
#! /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.
|
|
#--------------------------------------------------------------------
|
|
|
|
# Utility script for running the new integration tests, since the Maven
|
|
# commands are unwieldy.
|
|
set -e
|
|
|
|
export DRUID_DEV=$(cd $(dirname $0) && pwd)
|
|
|
|
function usage
|
|
{
|
|
cat <<EOF
|
|
Usage: $0 cmd [category]
|
|
build
|
|
build Druid and the distribution
|
|
dist
|
|
build the Druid distribution (only)
|
|
tools
|
|
build druid-it-tools
|
|
image
|
|
build the test image
|
|
up <category>
|
|
start the cluster for category
|
|
down <category>
|
|
stop the cluster for category
|
|
test <category>
|
|
start the cluster, run the test for category, and stop the cluster
|
|
tail <category>
|
|
show the last 20 lines of each container log
|
|
travis <category>
|
|
run one IT in Travis (build dist, image, run test, tail logs)
|
|
prune
|
|
prune Docker volumes
|
|
EOF
|
|
}
|
|
|
|
function tail_logs
|
|
{
|
|
category=$1
|
|
cd integration-tests-ex/cases/target/$category/logs
|
|
ls *.log | while read log;
|
|
do
|
|
echo "----- $category/$log -----"
|
|
tail -20 $log
|
|
done
|
|
}
|
|
|
|
CMD=$1
|
|
shift
|
|
MAVEN_IGNORE="-P skip-static-checks,skip-tests -Dmaven.javadoc.skip=true"
|
|
|
|
case $CMD in
|
|
"help" )
|
|
usage
|
|
;;
|
|
"build" )
|
|
mvn clean package -P dist $MAVEN_IGNORE -T1.0C
|
|
;;
|
|
"dist" )
|
|
mvn package -P dist $MAVEN_IGNORE -pl :distribution
|
|
;;
|
|
"tools" )
|
|
mvn install -pl :druid-it-tools
|
|
;;
|
|
"image" )
|
|
cd $DRUID_DEV/integration-tests-ex/image
|
|
mvn install -P test-image $MAVEN_IGNORE
|
|
;;
|
|
"up" )
|
|
if [ -z "$1" ]; then
|
|
usage
|
|
exit 1
|
|
fi
|
|
cd $DRUID_DEV/integration-tests-ex/cases
|
|
./cluster.sh up $1
|
|
;;
|
|
"down" )
|
|
if [ -z "$1" ]; then
|
|
usage
|
|
exit 1
|
|
fi
|
|
cd $DRUID_DEV/integration-tests-ex/cases
|
|
./cluster.sh down $1
|
|
;;
|
|
"test" )
|
|
if [ -z "$1" ]; then
|
|
usage
|
|
exit 1
|
|
fi
|
|
cd $DRUID_DEV/integration-tests-ex/cases
|
|
mvn verify -P skip-static-checks,docker-tests,IT-$1 \
|
|
-Dmaven.javadoc.skip=true -DskipUTs=true \
|
|
-pl :druid-it-cases
|
|
;;
|
|
"tail" )
|
|
if [ -z "$1" ]; then
|
|
usage
|
|
exit 1
|
|
fi
|
|
tail_logs $1
|
|
;;
|
|
"travis" )
|
|
if [ -z "$1" ]; then
|
|
usage
|
|
exit 1
|
|
fi
|
|
$0 dist
|
|
$0 image
|
|
$0 test $1
|
|
$0 tail $1
|
|
;;
|
|
"prune" )
|
|
# Caution: this removes all volumes, which is generally what you
|
|
# want when testing.
|
|
docker system prune --volumes
|
|
;;
|
|
* )
|
|
usage
|
|
exit -1
|
|
;;
|
|
esac
|