#! /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 < start the cluster for category down stop the cluster for category test start the cluster, run the test for category, and stop the cluster tail show the last 20 lines of each container log travis 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