language: java
sudo: false

cache:
  apt: true
  directories:
    - ~/.m2

addons:
  apt:
    packages:
      - xsltproc
      - xmlstarlet
      - oracle-java8-installer

branches:
  only:
    - master

install:
  -

matrix:
  fast_finish: true
  include:
    # testing of PR format
    - env:
        - DESC="test Issue ref in PR description"
        - CMD="./.ci/travis/travis.sh pr-description"

    # unit tests (oraclejdk8)
    - jdk: oraclejdk8
      env:
        - DESC="tests and deploy"
        - CMD="mvn clean integration-test failsafe:verify -DargLine='-Xms1024m -Xmx2048m'"
        - DEPLOY="true"

    # checkstyle (oraclejdk8)
    - jdk: oraclejdk8
      env:
        - DESC="checkstyle and sevntu-checkstyle"
        - CMD="export MAVEN_OPTS='-Xmx2000m' && mvn clean verify -DskipTests -DskipITs -Dpmd.skip=true -Dfindbugs.skip=true -Dcobertura.skip=true"

    # cobertura and codecov (oraclejdk8)
    - jdk: oraclejdk8
      env:
        - DESC="cobertura and codecov"
        - CMD="./.ci/travis/travis.sh cobertura-check"
        - CMD_AFTER_SUCCESS="bash <(curl -s https://codecov.io/bash)"

    # findbugs, spotbugs and pmd (oraclejdk8)
    - jdk: oraclejdk8
      env:
        - DESC="findbugs,spotbugs,pmd"
        - CMD="export MAVEN_OPTS='-Xmx2000m' && mvn clean compile pmd:check findbugs:check spotbugs:check"

    # eclipse static analysis
    - jdk: oraclejdk8
      env:
        - DESC="eclipse static analysis"
        - CMD="mvn clean compile exec:exec -Peclipse-compiler"

    # Releasenotes generation - validaton
    - jdk: oraclejdk8
      env:
        - DESC="Releasenotes generation"
        - CMD="./.ci/travis/travis.sh releasenotes-gen"

    # NonDex (oraclejdk8)
    - jdk: oraclejdk8
      env:
        - DESC="NonDex"
        - CMD="./.ci/travis/travis.sh nondex"

    # site (oraclejdk8 as 'site' success is required to be sure that on release time all will be ok, admins will use oracle8 version)
    # moved to https://codeship.com/projects/124310/configure_tests
    #- jdk: oraclejdk8
    #  env:
    #    - DESC="site"
    #    - CMD1="mvn clean site -Dlinkcheck.skip=true -DskipTests -DskipITs "
    #    - CMD2=" -Dpmd.skip=true -Dfindbugs.skip=true -Dcobertura.skip=true "
    #    - CMD3=" -Dcheckstyle.ant.skip=true -Dcheckstyle.skip=true"
    #    - CMD=$CMD1$CMD2$CMD3
    #    - COVERAGE_CMD=""

    # unit tests in German locale (oraclejdk8)
    - jdk: oraclejdk8
      env:
        - DESC="tests de"
        - CMD="mvn clean integration-test failsafe:verify -DargLine='-Duser.language=de -Duser.country=DE -Xms1024m -Xmx2048m'"
    # unit tests in Spanish locale (oraclejdk8)
    - jdk: oraclejdk8
      env:
        - DESC="tests es"
        - CMD="mvn clean integration-test failsafe:verify -DargLine='-Duser.language=es -Duser.country=ES -Xms1024m -Xmx2048m'"
    # unit tests in Finnish locale (oraclejdk8)
    - jdk: oraclejdk8
      env:
        - DESC="tests fi"
        - CMD="mvn clean integration-test failsafe:verify -DargLine='-Duser.language=fi -Duser.country=FI -Xms1024m -Xmx2048m'"
    # unit tests in French locale (oraclejdk8)
    - jdk: oraclejdk8
      env:
        - DESC="tests fr"
        - CMD="mvn clean integration-test failsafe:verify -DargLine='-Duser.language=fr -Duser.country=FR -Xms1024m -Xmx2048m'"
    # unit tests in Chinese locale (oraclejdk8)
    - jdk: oraclejdk8
      env:
        - DESC="tests zh"
        - CMD="mvn clean integration-test failsafe:verify -DargLine='-Duser.language=zh -Duser.country=CN -Xms1024m -Xmx2048m'"
    # unit tests in Japanese locale (oraclejdk8)
    - jdk: oraclejdk8
      env:
        - DESC="tests ja"
        - CMD="mvn clean integration-test failsafe:verify -DargLine='-Duser.language=ja -Duser.country=JP -Xms1024m -Xmx2048m'"
    # unit tests in Portuguese locale (oraclejdk8)
    - jdk: oraclejdk8
      env:
        - DESC="tests pt"
        - CMD="mvn clean integration-test failsafe:verify -DargLine='-Duser.language=pt -Duser.country=PT -Xms1024m -Xmx2048m'"
    # unit tests in Turkish locale (oraclejdk8)
    - jdk: oraclejdk8
      env:
        - DESC="tests tr"
        - CMD="mvn clean integration-test failsafe:verify -DargLine='-Duser.language=tr -Duser.country=TR -Xms1024m -Xmx2048m'"

    # assembly (oraclejdk8)
    - jdk: oraclejdk8
      env:
        - DESC="assembly & run '-all' jar"
        - CMD="./.ci/travis/travis.sh assembly-run-all-jar"

    # NoExceptiontest - Guava with google_checks (oraclejdk8)
    - jdk: oraclejdk8
      env:
        - DESC="NoExceptionTest - Guava with google_checks"
        - CMD="./.ci/travis/travis.sh no-exception-test-guava-with-google-checks"

    # release dry run (oraclejdk8)
    - jdk: oraclejdk8
      env:
        - DESC="release dry run"
        - CMD="./.ci/travis/travis.sh release-dry-run"

    # Check the chmod on files.
    - env:
        - DESC="check permissions on all files"
        - CMD="./.ci/travis/travis.sh check-chmod"

    # Ensure that all Sevntu check are kused
    - jdk: oraclejdk8
      env:
        - DESC="All sevntu checks should be used"
        - CMD="./.ci/travis/travis.sh all-sevntu-checks"

    # MacOS verify (till cache is not working, we can not do verify)
    - os: osx
      env:
        - DESC="MacOS verify, site, assembly"
        - CMD="export JAVA_HOME=$(/usr/libexec/java_home) && mvn package -Dlinkcheck.skip=true && mvn package -Passembly "

    # https://sonarcloud.io (oraclejdk8)
    - jdk: oraclejdk8
      env:
        - DESC="sonarcloud.io"
        - CMD="./.ci/travis/travis.sh sonarqube"

    # No error testing - simple-binary-encoding
    - jdk: oraclejdk8
      env:
        - DESC="no error test on simple-binary-encoding"
        - CMD="./.ci/travis/travis.sh no-error-test-sbe"

    # versions to update
    - jdk: oraclejdk8
      env:
        - DESC="print versions to update"
        - CMD="./.ci/travis/travis.sh versions"

script:
  - SKIP_FILES=".github|appveyor.yml|circle.yml|distelli-manifest.yml|fast-forward-merge.sh|LICENSE|LICENSE.apache20|README.md|release.sh|RIGHTS.antlr|shippable.yml|wercker.yml|intellij-idea-inspections.xml"
  - SKIP_CI=$(if [[ $(git diff --name-only HEAD HEAD~1 | grep -vE "$SKIP_FILES" | cat | wc -c | sed 's/^ *//' ) > 0 ]]; then echo false; else echo true; fi;)
  - echo "SKIP_CI="$SKIP_CI
  - |
    set -e
    if [[ $SKIP_CI == 'false' ]];
    then
         eval $CMD;
         echo "eval of CMD is completed"
    fi

after_success:
  - |
    set -e
    if [[ -n $CMD_AFTER_SUCCESS
          && $SKIP_CI == 'false'
       ]];
    then
        eval $CMD_AFTER_SUCCESS;
        echo "CMD_AFTER_SUCCESS is finished";
    fi
  - |
    set -e
    SKIP_DEPLOY=$(if [ $(git log -1 | grep -E "\[maven-release-plugin\] prepare release" | cat | wc -l) -lt 1 ]; then echo false; else echo true; fi;)
    if [[ $TRAVIS_REPO_SLUG == 'checkstyle/checkstyle'
            && $TRAVIS_BRANCH == 'master'
            && $TRAVIS_PULL_REQUEST == 'false'
            && $DEPLOY == 'true'
            && $SKIP_CI == 'false'
            && $SKIP_DEPLOY == 'false'
       ]];
    then
        mvn -s config/deploy-settings.xml -Pno-validations deploy;
        echo "deploy to maven snapshot repository is finished";
    fi
