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

language: java scala node_js

services:
  - docker

env:
  - COMPOSE_FILE=griffin-doc/docker/compose/docker-compose-batch.yml

jdk:
  - openjdk8
scala:
  - 2.10.6
node_js:
  - "6"
git:
  quiet: true
cache:
  directories:
    - $HOME/.m2

install:
  - npm install -g bower

before_script:
  - docker-compose up -d


# keep 30, need change according to ci logs.
script:
  - export MAVEN_SKIP_RC=true
  - export MAVEN_OPTS=" -Xmx1g -XX:ReservedCodeCacheSize=128m -Dorg.slf4j.simpleLogger.defaultLogLevel=warn -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn"
  - mvn -B clean test -Dlogging.level.org.springframework=WARN

