# 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.

sudo: false
language: java
jdk:
  - openjdk11
cache:
  bundler: false
  cargo: false
  directories:
    - $HOME/.m2
git:
  depth: 2
matrix:
  fast_finish: true
env:
  global:
  - MAVEN_OPTS="-Xmx4096M -Xss128M -XX:+CMSClassUnloadingEnabled -XX:+TieredCompilation -XX:TieredStopAtLevel=1 -noverify"
install: true
notifications:
  email:
    - dev@syncope.apache.org
stages:
  - initialize
  - build
  - validate
  - test
  - fit
jobs:
  include:
    - stage: initialize
      script: mvn --quiet --show-version -T 4 enforcer:enforce
      name: "Verify Platform"
    - stage: initialize
      script: mvn -T 4 clean dependency:go-offline dependency:resolve-plugins --quiet -Denforcer.skip=true -U
      name: "Warm Up Dependencies"
      #######################################################
    - stage: build
      script: mvn install --quiet -T 4 -P all,skipTests,skipLegalFiles,docker -Dcheckstyle.skip=true -Dmaven.javadoc.skip=true -Denforcer.skip=true
      name: "Build"
      #######################################################
    - stage: validate
      script: mvn checkstyle:check -T 4 -Denforcer.skip=true --quiet
      name: "Checkstyle Analysis"
    - stage: validate
      script: mvn -T 4 --quiet javadoc:javadoc javadoc:test-javadoc -Denforcer.skip=true
      name: "Javadoc Analysis"
    - stage: validate
      script: mvn -T 4 --quiet ianal:verify-legal-files -Denforcer.skip=true
      name: "Legal Files Analysis"
    - stage: validate
      script: mvn -T 4 --quiet modernizer:modernizer
      name: "Modernizer Legacy API Analysis"
    - stage: validate
      script: mvn -T 4 --quiet apache-rat:check
      name: "Release Audit Tool (RAT) Analysis"
      ######################################################
    - stage: test
      script: mvn clean test -T 4 -P skipLegalFiles,skipSass -T 4 --quiet -Dinvoker.streamLogs=true -Denforcer.skip=true -Dmodernizer.skip=true
      name: "Unit Tests"
      ######################################################
    - stage: fit
      script: travis_wait 55 mvn -f fit/core-reference/pom.xml verify -P full-it,all,skipLegalFiles,skipSass -T 4 -Dinvoker.streamLogs=true -Denforcer.skip=true -Dmodernizer.skip=true -Djacoco.skip=true -Drat.skip=true
      name: "Full Integration Tests via JSON Content-Type"
    # - stage: fit
    #   script: travis_wait 55 mvn -f fit/core-reference/pom.xml verify -P full-it,all,skipLegalFiles,skipSass -T 4 -DjaxrsContentType=application/xml -Dinvoker.streamLogs=true -Denforcer.skip=true -Dmodernizer.skip=true -Djacoco.skip=true -Drat.skip=true
    #   name: "Full Integration Tests via XML Content-Type"
    # - stage: fit
    #   script: travis_wait 55 mvn -f fit/core-reference/pom.xml verify -P full-it,all,skipLegalFiles,skipSass -T 4 -DjaxrsContentType=application/yaml -Dinvoker.streamLogs=true -Denforcer.skip=true -Dmodernizer.skip=true -Djacoco.skip=true -Drat.skip=true
    #   name: "Full Integration Tests via YAML Content-Type"
      #####################################################
  after_failure:
    - cat fit/core-reference/target/log/*
    - cat fit/core-reference/target/failsafe-reports/org.apache.syncope.fit.*-output.txt
