dist: trusty
language: java

cache:
  directories:
  - $HOME/.m2/repository
  - frontend/src/bower_components
  - frontend/src/node_modules
  - integration/rocket-chat/node_modules

before_cache:
  - rm -rf $HOME/.m2/repository/io/redlink/smarti/

services:
  - mongodb

jdk:
  - openjdk8

before_install:
  - gem install sass
  - gem install compass

install:
  - mvn -B clean install -Dquick

script:
  - mvn -B -DargLine="-Xmx2g" test

jobs:
  include:
    - stage: test
    - stage: documentation
      if: branch IN (master, documentation) AND type IN (push, api)
      script: true
      deploy:
        provider: pages
        skip_cleanup: true
        local_dir: docs/target/html/
        github_token: ${GH_TOKEN}
    - stage: release
      if: tag =~ ^smarti- AND type = push
      before_script:
        - sudo apt-get -qq update
        - sudo apt-get install -y rpm pbzip2
      script:
        - mvn -B -f dist/ install -Pdeb,rpm,docker
        - mvn -B -f integration/solr-docker/ install -Pdeb,rpm,docker
      before_deploy:
        - SMARTI_VERSION="$(mvn -B -q -N exec:exec -Dexec.executable=echo -Dexec.args='${project.version}')"
        - docker save redlinkgmbh/smarti:${SMARTI_VERSION} | pbzip2 > "dist/target/smarti-${SMARTI_VERSION}.docker.tbz2"
        - docker save redlinkgmbh/smarti-solr:${SMARTI_VERSION} | pbzip2 > "dist/target/smarti-solr-${SMARTI_VERSION}.docker.tbz2"
      deploy:
        provider: releases
        api_key: ${GH_TOKEN}
        file_glob: true
        file:
          - application/target/*-exec.jar
          - application/target/*-solrcores.zip
          - dist/target/*.deb
          - dist/target/rpm/smarti/RPMS/noarch/*.rpm
          - dist/target/*.docker.tbz2
        skip_cleanup: true
        name: ${TRAVIS_TAG}
        tag_name: ${TRAVIS_TAG}
        target_commitish: ${TRAVIS_COMMIT}
        draft: true
        on:
          tags: true