language: java

# On 12-12-2017, Travis updated their trusty image, which caused integration tests to fail.
# The group: config instructs Travis to use the previous trusty image.
# Please see https://github.com/druid-io/druid/pull/5155 for more information.
sudo: required
dist: trusty
group: deprecated-2017Q4

jdk:
  - oraclejdk8

cache:
  directories:
    - $HOME/.m2

matrix:
  include:
      # strict compilation
    - sudo: false
      env:
        - NAME="strict compilation"
      install: true
      # Strict compilation requires more than 2 GB
      script: echo "MAVEN_OPTS='-Xmx3000m'" > ~/.mavenrc && mvn clean -Pstrict -pl '!benchmarks' compile test-compile -B

      # processing module test
    - sudo: false
      env:
        - NAME="processing module test"
      install: echo "MAVEN_OPTS='-Xmx3000m'" > ~/.mavenrc && mvn install -q -ff -DskipTests -B
      before_script:
        - unset _JAVA_OPTIONS
      script: echo "MAVEN_OPTS='-Xmx512m'" > ~/.mavenrc && mvn test -B -Pparallel-test -Dmaven.fork.count=2 -pl processing

      # server module test
    - sudo: false
      env:
        - NAME="server module test"
      install: echo "MAVEN_OPTS='-Xmx3000m'" > ~/.mavenrc && mvn install -q -ff -DskipTests -B
      before_script:
        - unset _JAVA_OPTIONS
      # Server module test is run without the parallel-test option because it's memory sensitive and often fails with that option.
      script: echo "MAVEN_OPTS='-Xmx512m'" > ~/.mavenrc && mvn test -B -pl server

      # other modules test
    - sudo: false
      env:
        - NAME="other modules test"
        - AWS_REGION=us-east-1 # set a aws region for unit tests
      install: echo "MAVEN_OPTS='-Xmx3000m'" > ~/.mavenrc && mvn install -q -ff -DskipTests -B
      before_script:
        - unset _JAVA_OPTIONS
      script: echo "MAVEN_OPTS='-Xmx512m'" > ~/.mavenrc && mvn test -B -Pparallel-test -Dmaven.fork.count=2 -pl '!processing,!server'

      # run integration tests
    - sudo: required
      services:
        - docker
      env:
        - NAME="integration test"
        - DOCKER_IP=172.17.0.1
      install:
        # Only errors will be shown with the -q option. This is to avoid generating too many logs which make travis build failed.
        - mvn install -q -ff -DskipTests -B
      script:
        - $TRAVIS_BUILD_DIR/ci/travis_script_integration.sh
      after_failure:
        - for v in ~/shared/logs/*.log ; do
          echo $v logtail ======================== ; tail -100 $v ;
          done
        - for v in broker middlemanager overlord router coordinator historical ; do
          echo $v dmesg ======================== ;
          docker exec -it druid-$v sh -c 'dmesg | tail -3' ;
          done
