branches:
  only:
  - master
  - /^it\/.*$/
language: groovy
jdk:
  - openjdk8
sudo: required
services:
  - docker
env:
  global:
    MAVEN_OPTS=-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
cache:
  directories:
  - $HOME/.m2

# Travis Lifecycle: https://docs.travis-ci.com/user/job-lifecycle#the-job-lifecycle
# Travis Stages: https://docs.travis-ci.com/user/build-stages/
# Travis Conditions: https://docs.travis-ci.com/user/conditional-builds-stages-jobs
# Travis GHPages deploy provider: https://docs.travis-ci.com/user/deployment/pages/
jobs:
  include:
    - stage: Tests
      name: Unit Tests
      before_script:
        - curl -L --output cc-test-reporter https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64
        - chmod +x ./cc-test-reporter
        - ./cc-test-reporter before-build
      script:
        - docker build -t piper:latest . 
        - mvn package --batch-mode
      after_script:
        - JACOCO_SOURCE_PATH="src vars test" ./cc-test-reporter format-coverage target/site/jacoco/jacoco.xml --input-type jacoco
        - ./cc-test-reporter upload-coverage
    - name: Consumer Tests
      if: repo = "SAP/jenkins-library" && ( (type != pull_request && branch =~ /^master$|^it\/.*$/) || (type == pull_request && head_repo = "SAP/jenkins-library" && head_branch =~ /^it\/.*$/) )
      script: cd consumer-test && groovy consumerTestController.groovy

    - stage: Docs
      name: Create Documentation
      install: docker pull squidfunk/mkdocs-material:3.0.4
      before_script: documentation/bin/createDocu.sh
      script:
        - docker run -u `id -u`:`id -g` --rm -it -v ${TRAVIS_BUILD_DIR}/documentation:/docs squidfunk/mkdocs-material:3.0.4 build --clean --strict
        - mkdir -p documentation/docs-gen/misc
        - cp target/docuMetaData.json documentation/docs-gen/misc
      deploy:
        on:
          branch: master
        provider: pages
        skip_cleanup: true
        github_token: ${GITHUB_TOKEN}
        name: 'Travis CI Publisher'
        local_dir: 'documentation/docs-gen'
        keep_history: true
        #verbose: true
