# Copyright 2014 Nikita Koksharov, Nickolay Borbit
#
# Licensed 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.

sudo: false
dist: trusty

language: java
jdk:
  - oraclejdk8
env:
    matrix:
        # Current
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.ConcurrentRedissonSortedSetTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedisClientTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonAtomicDoubleTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonAtomicLongReactiveTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonAtomicLongTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonLiveObjectServiceTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonBatchTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonBitSetReactiveTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonBitSetTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonBlockingDequeTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonBlockingQueueReactiveTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonBlockingQueueTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonBloomFilterTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonBucketReactiveTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonBucketTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonBucketsTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonCodecTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonConcurrentMapTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonCountDownLatchConcurrentTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonCountDownLatchTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonDequeReactiveTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonDequeTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonFairLockTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonGeoTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonHyperLogLogReactiveTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonHyperLogLogTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonKeysReactiveTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonKeysTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonLexSortedSetReactiveTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonLexSortedSetTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonListMultimapCacheTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonListMultimapTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonListReactiveTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonListTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonLockTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonMapCacheReactiveTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonMapCacheTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonMapReactiveTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonMapTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonMultiLockTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonQueueReactiveTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonQueueTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonReadWriteLockTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonRemoteServiceTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonScoredSortedSetReactiveTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonScoredSortedSetTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonScriptReactiveTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonScriptTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonSemaphoreTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonSetCacheReactiveTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonSetCacheTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonSetMultimapCacheTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonSetMultimapTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonSetReactiveTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonSetTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonSortedSetTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonTopicPatternTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonTopicTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonTwoLockedThread
#        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.TimeoutTest
        - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.spring.cache.RedissonSpringCacheTest
        # Legacy
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.ConcurrentRedissonSortedSetTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedisClientTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonAtomicDoubleTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonAtomicLongReactiveTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonAtomicLongTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonLiveObjectServiceTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonBatchTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonBitSetReactiveTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonBitSetTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonBlockingDequeTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonBlockingQueueReactiveTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonBlockingQueueTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonBloomFilterTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonBucketReactiveTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonBucketTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonBucketsTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonCodecTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonConcurrentMapTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonCountDownLatchConcurrentTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonCountDownLatchTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonDequeReactiveTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonDequeTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonFairLockTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonGeoTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonHyperLogLogReactiveTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonHyperLogLogTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonKeysReactiveTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonKeysTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonLexSortedSetReactiveTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonLexSortedSetTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonListMultimapCacheTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonListMultimapTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonListReactiveTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonListTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonLockTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonMapCacheReactiveTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonMapCacheTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonMapReactiveTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonMapTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonMultiLockTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonQueueReactiveTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonQueueTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonReadWriteLockTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonRemoteServiceTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonScoredSortedSetReactiveTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonScoredSortedSetTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonScriptReactiveTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonScriptTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonSemaphoreTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonSetCacheReactiveTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonSetCacheTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonSetMultimapCacheTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonSetMultimapTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonSetReactiveTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonSetTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonSortedSetTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonTopicPatternTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonTopicTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonTwoLockedThread
#        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.TimeoutTest
        - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.spring.cache.RedissonSpringCacheTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.ConcurrentRedissonSortedSetTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedisClientTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonAtomicDoubleTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonAtomicLongReactiveTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonAtomicLongTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonLiveObjectServiceTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonBatchTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonBitSetReactiveTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonBitSetTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonBlockingDequeTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonBlockingQueueReactiveTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonBlockingQueueTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonBloomFilterTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonBucketReactiveTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonBucketTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonBucketsTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonCodecTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonConcurrentMapTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonCountDownLatchConcurrentTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonCountDownLatchTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonDequeReactiveTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonDequeTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonFairLockTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonGeoTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonHyperLogLogReactiveTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonHyperLogLogTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonKeysReactiveTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonKeysTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonLexSortedSetReactiveTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonLexSortedSetTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonListMultimapCacheTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonListMultimapTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonListReactiveTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonListTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonLockTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonMapCacheReactiveTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonMapCacheTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonMapReactiveTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonMapTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonMultiLockTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonQueueReactiveTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonQueueTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonReadWriteLockTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonRemoteServiceTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonScoredSortedSetReactiveTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonScoredSortedSetTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonScriptReactiveTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonScriptTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonSemaphoreTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonSetCacheReactiveTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonSetCacheTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonSetMultimapCacheTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonSetMultimapTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonSetReactiveTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonSetTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonSortedSetTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonTopicPatternTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonTopicTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonTwoLockedThread
#        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.TimeoutTest
        - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.spring.cache.RedissonSpringCacheTest
        # Unstable
cache:
  directories:
  - $HOME/.m2
install:
    - export REDIS_BIN=$HOME/redis/${REDIS_VERSION}/bin
    - wget -c https://github.com/antirez/redis/archive/${REDIS_VERSION}.tar.gz -O redis-${REDIS_VERSION}.tar.gz
    - tar -xvf redis-${REDIS_VERSION}.tar.gz
    - make -C redis-${REDIS_VERSION} PREFIX=$HOME/redis/${REDIS_VERSION} install
before_script:
    - $REDIS_BIN/redis-server --daemonize yes
    - sleep 3
    - $REDIS_BIN/redis-cli PING
    - export REDIS_VERSION="$(redis-cli INFO SERVER | sed -n 2p)"
    - echo $REDIS_VERSION
    - redis-cli SHUTDOWN NOSAVE
script: mvn -Dtest=$REDISSON_TEST -Dsurefire.rerunFailingTestsCount=5 -DargLine="-Xmx2g -DredisBinary=$REDIS_BIN/redis-server -DtravisEnv=true -XX:SoftRefLRUPolicyMSPerMB=0" -Punit-test clean test -e -X