#!/bin/sh
#
# 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.
#

# Since we don't have osx test environment, we use travis-ci to test on osx.
# Free-plan of travis-ci offers limited resources, we only test whether iotdb can be packaged on jdk8 and jdk11.

language: java

#dist: trusty
#sudo: required

matrix:
  include:
    - os: osx
      osx_image: xcode10.1 # with JDK11.0.1+13 installed
      name: osx-oraclejdk11
    - os: osx
      osx_image: xcode9.3  # with JDK1.8.0_112-b16 installed
      name: osx-oraclejdk8
    - os: osx
      osx_image: xcode10.1 # with JDK11.0.1+13 installed
      name: osx-openjdk11
      addons:
        homebrew:
          taps:
            #- homebrew/cask-versions
            - AdoptOpenJDK/openjdk
          update: true
          casks: adoptopenjdk-openjdk11
    - os: osx
      osx_image: xcode9.3  # with JDK1.8.0_112-b16 installed
      name: osx-openjdk8
      addons:
        homebrew:
          taps:
            #- homebrew/cask-versions
            - AdoptOpenJDK/openjdk
          update: true
          casks: adoptopenjdk-openjdk8
    - os: linux
      name: linux-openjdk11
      dist: xenial
      sudo: required
      jdk:
        - openjdk11
    - os: linux
      name: linux-openjdk8
      dist: xenial
      jdk: openjdk8
    - os: windows
      language: c
      name: win-openjdk11
      before_install:
        # - choco install openjdk11 --version=11.0.2.01 -y
        # can get the download links from https://jdk.java.net/archive/
        - wget --no-check-certificate https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_windows-x64_bin.zip
        - wget --no-check-certificate https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.zip
        - /C/Progra~1/7-Zip/7z.exe x apache-maven-3.6.3-bin.zip -o/c/mvn363
        - /C/Progra~1/7-Zip/7z.exe x openjdk-11.0.2_windows-x64_bin.zip -o/c/java
        - mkdir C:\hadoop\bin
        - wget --no-check-certificate https://github.com/cdarlint/winutils/raw/master/hadoop-2.7.3/bin/winutils.exe -o C:\hadoop\bin
        - wget --no-check-certificate https://github.com/cdarlint/winutils/raw/master/hadoop-2.7.3/bin/hadoop.dll -o C:\windows\system32
        - wget --no-check-certificate https://github.com/cdarlint/winutils/raw/master/hadoop-2.7.3/bin/hadoop -o C:\hadoop\bin
        - wget --no-check-certificate https://github.com/cdarlint/winutils/raw/master/hadoop-2.7.3/bin/hadoop.cmd -o C:\hadoop\bin
        - wget --no-check-certificate https://github.com/cdarlint/winutils/raw/master/hadoop-2.7.3/bin/hadoop.exp -o C:\hadoop\bin
        - wget --no-check-certificate https://github.com/cdarlint/winutils/raw/master/hadoop-2.7.3/bin/hadoop.lib -o C:\hadoop\bin
        - wget --no-check-certificate https://github.com/cdarlint/winutils/raw/master/hadoop-2.7.3/bin/hadoop.pdb -o C:\hadoop\bin
        - wget --no-check-certificate https://github.com/cdarlint/winutils/raw/master/hadoop-2.7.3/bin/hdfs.dll -o C:\windows\system32
        - wget --no-check-certificate https://github.com/cdarlint/winutils/raw/master/hadoop-2.7.3/bin/hdfs -o C:\hadoop\bin
        - wget --no-check-certificate https://github.com/cdarlint/winutils/raw/master/hadoop-2.7.3/bin/hdfs.cmd -o C:\hadoop\bin
        - wget --no-check-certificate https://github.com/cdarlint/winutils/raw/master/hadoop-2.7.3/bin/hdfs.exp -o C:\hadoop\bin
        - wget --no-check-certificate https://github.com/cdarlint/winutils/raw/master/hadoop-2.7.3/bin/hdfs.lib -o C:\hadoop\bin
        - wget --no-check-certificate https://github.com/cdarlint/winutils/raw/master/hadoop-2.7.3/bin/hdfs.pdb -o C:\hadoop\bin
        - wget --no-check-certificate https://github.com/cdarlint/winutils/raw/master/hadoop-2.7.3/bin/hdfs_static.lib -o C:\hadoop\bin
        - wget --no-check-certificate https://github.com/cdarlint/winutils/raw/master/hadoop-2.7.3/bin/libwinutils.lib -o C:\hadoop\bin
        - wget --no-check-certificate https://github.com/cdarlint/winutils/raw/master/hadoop-2.7.3/bin/mapred -o C:\hadoop\bin
        - wget --no-check-certificate https://github.com/cdarlint/winutils/raw/master/hadoop-2.7.3/bin/mapred.cmd -o C:\hadoop\bin
        - wget --no-check-certificate https://github.com/cdarlint/winutils/raw/master/hadoop-2.7.3/bin/rcc -o C:\hadoop\bin
        - wget --no-check-certificate https://github.com/cdarlint/winutils/raw/master/hadoop-2.7.3/bin/winutils.pdb -o C:\hadoop\bin
        - wget --no-check-certificate https://github.com/cdarlint/winutils/raw/master/hadoop-2.7.3/bin/yarn -o C:\hadoop\bin
        - wget --no-check-certificate https://github.com/cdarlint/winutils/raw/master/hadoop-2.7.3/bin/yarn.cmd -o C:\hadoop\bin
      before_script:
        - export "JAVA_HOME=/c/java/jdk-11.0.2"
        - export "PATH=$JAVA_HOME/bin:$PATH"
        - export "PATH=$JAVA_HOME/jre/bin:$PATH"
        - export "MAVEN_HOME=/c/mvn363/apache-maven-3.6.3"
        - export "M2_HOME=/c/mvn363/apache-maven-3.6.3"
        - export "PATH=/c/mvn363/apache-maven-3.6.3/bin:$PATH"
        - export "HADOOP_HOME=/c/hadoop"
        - export "PATH=/c/hadoop/bin:$PATH"
      script:
        - rm -rf /Users/travis/.m2/repository/org/apache/maven/plugins
        - rm -rf /Users/travis/.m2/repository/org/apache/tomcat
        - java -version
        - mvn -version
        - mvn -B apache-rat:check  -Denforcer.skip=true
        # Output something every 10 minutes or Travis kills the job
        - while sleep 540; do echo "=====[ $SECONDS seconds still running ]====="; done &
        - mvn -B clean test integration-test -Dtest.port.closed=true  -Denforcer.skip=true
        # Killing background sleep loop
        - kill %1
    - os: linux
      if: fork = false #only fork=true (i.e., the committer has permission to write the repo)
      name: sonar-analysis
      dist: xenial
      jdk: openjdk8
      addons:
        sonarcloud:
          organization: "apache"
          projectKey: "apache_incubator-iotdb"
          token:
            secure: "a2n2+MFfuOb3hsrw5vjiIUZzjt6S0j4YmRVrms6NVKF+EpEAWU/zOjzfccLGRr3VFUAlkoM2p578c/0DMMGew2oj3Yl1iJe2n35BWIV6r/psUKRUMdgMAogdshQzZGMYmY1XL2xA3ATu8cf4F8WoRAafd/S58JGQdTfsQ5svh31BxK0iuh+nMIZb4dYxO717dSVD45D9hoF5ROxdtTRbyAaXFPs5djxWrdzKw0J3e6a8m82K9FGcpy4pY9ct3ttbyEzGqMnzE4fhd3KgopFJj+3QdAi/3Cmkf1voxorQdCSbktl4PtlzMY/nxF6XETI2E4T+GLUVMw4iHiXCabqwOiudGnEj5DjNz6X5MVCOyj7lrFBTlDirGzv9fNpvQ2I47WOL8DzBJPqFwQ0nRAlbvcWVtE4aAqj8YF1QwwLxEIi4abDfOwaxGG2TOixQf627pvhh1o0RdEf9R6aRyur7vbMt7H9+4tQaHGI2PY1KbCkjhppIrEsarI07uvfPic3By/yOWj6iqZ1QiVAgPTec/o1blNWlMeGwdcCPfCxMjy9iqzpzNIB9fld28CN1Yvzpg74iIKnMU5mL1wB5yT8Vo9Q28JNSEwKIBhuayZLloGbnl/PX8jvDDWSm7yYoZYEI42tgVOXAXX7R53rOcxJMEgCa5RsVDRmJn5n7o6hwhn8="
      script:
        - mvn verify sonar:sonar -Dsonar.organization=apache -Dsonar.projectKey=apache_incubator-iotdb -DskipTests -pl '!distribution' -am
    - os: linux
      if: fork = false #only fork=true (i.e., the committer has permission to write the repo)
      name: code-coverage
      dist: xenial
      jdk: openjdk8
      script:
        # now, grafana has no tests; spark-* tests are written by scala
        - mvn post-integration-test -Pcode-coverage -Pcoveralls -pl '!distribution' -am  -Denforcer.skip=true
      after_success:
        - mvn coveralls:report -DserviceName=travis_ci -pl tsfile,server,jdbc,client,session,hive-connector,flink-iotdb-connector,flink-tsfile-connector
#     - os: linux
#       name: linux-website checker
#       dist: xenial
#       jdk: openjdk8
#       script:
#         - mvn -P site clean package -pl site
    # - os: windows
    #   name: windows-website checker
    #   language: c
    #   before_install:
    #     # - choco install openjdk11 --version=11.0.2.01 -y
    #     # can get the download links from https://jdk.java.net/archive/
    #     - wget --no-check-certificate https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_windows-x64_bin.zip
    #     - wget --no-check-certificate https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.zip
    #     - /C/Progra~1/7-Zip/7z.exe x apache-maven-3.6.3-bin.zip -o/c/mvn363
    #     - /C/Progra~1/7-Zip/7z.exe x openjdk-11.0.2_windows-x64_bin.zip -o/c/java
    #   before_script:
    #     - export "JAVA_HOME=/c/java/jdk-11.0.2"
    #     - export "PATH=$JAVA_HOME/bin:$PATH"
    #     - export "PATH=$JAVA_HOME/jre/bin:$PATH"
    #     - export "MAVEN_HOME=/c/mvn363/apache-maven-3.6.3"
    #     - export "M2_HOME=/c/mvn363/apache-maven-3.6.3"
    #     - export "PATH=/c/mvn363/apache-maven-3.6.3/bin:$PATH"
    #   script:
    #     - mvn -P site clean package -pl site
cache:
  directories:
    - '$HOME/.m2/repository'
    - '$HOME/.sonar/cache'



# skip `before_install` stage
before_install: true

# skip `install` stage
install: true

script:
    - rm -rf /Users/travis/.m2/repository/org/apache/maven/plugins
    - rm -rf /Users/travis/.m2/repository/org/apache/tomcat
    - java -version
    - mvn -version
    - mvn -B apache-rat:check -Denforcer.skip=true
    # Output something every 10 minutes or Travis kills the job
    - while sleep 540; do echo "=====[ $SECONDS seconds still running ]====="; done &
    - mvn -B clean test integration-test -Dtest.port.closed=true  -Denforcer.skip=true
    # Killing background sleep loop
    - kill %1

after_success:
