# Copyright 2014 Criteo
#
# Licensed 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

before_install:
  - sudo apt-get install automake autoconf autogen

install:
  - cd ../..
  - mkdir -p build
  - cd build
  - git clone https://gerrit.googlesource.com/buck
  - cd buck
  - ant
  - export PATH=$PATH:$TRAVIS_BUILD_DIR/../../build/buck/bin
  - cd ..
  - git clone -b stable-2.10 https://gerrit.googlesource.com/gerrit
  - cd gerrit
  - ln -s $TRAVIS_BUILD_DIR plugins
  - travis_retry tools/download_all.py > download.log

script:
  - buck clean
  - buck build gerrit > buck.log
  - buck build plugins/automerge-plugin:automerge-plugin >> buck.log

after_failure:
  - cat buck.log

before_deploy:
  - cd $TRAVIS_BUILD_DIR
  - git fetch --tags

deploy:
  provider: releases
  skip_cleanup: true
  api_key:
    secure: Hze64QC7F5SSOVoufSIPtRWb+t6Pzzvx2kJgLtPJYUj87CKOXYzVHVqHuWsa50DPfed9knDnm5nOJawZAxleXG5VxSvBERvSyUNhjNUbDkKson1/TcCl12YM5FcyM2ocsLYe/mc59V3h9LZR2mHDqVj/incxwAIxV/MJIgu5PBg=
  file: ../../build/gerrit/buck-out/gen/plugins/automerge-plugin/automerge-plugin.jar
  on:
    repo: criteo/automerge-plugin
    tags: true
    all_branches: true
