# 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 --depth=1 --branch=master https://gerrit.googlesource.com/buck
  - cd buck
  - ant
  - export PATH=$PATH:$TRAVIS_BUILD_DIR/../../build/buck/bin
  - cd ..
  - git clone --depth=1 --branch=master https://gerrit.googlesource.com/gerrit
  - cd gerrit
  - ln -s $TRAVIS_BUILD_DIR plugins
  - travis_retry tools/download_all.py > download.log

script:
  - 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
