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

sudo: required
dist: xenial
jdk: openjdk8
language: java
services:
- docker

notifications:
  email: false
  webhooks:
    urls:
      # travis2slack webhook to enable DMs on openwhisk-team.slack.com to PR authors with TravisCI results
      secure: "LK9+HMtd86ByfzgbUAFFFxGX7RXpcdV5zzEezkLrGu9C574XBItH+FUuQm1pxLh6HCkfrzEdOmKF6iksnceiYgBZ8leRblCQQovwThB+uLV5LnRVSdlWhNHJ5W3qlDYRVgeWW3OopMGl1Vv54uS6pRXvc1ziGYlPFbITQtnwfQ2dvs6ykPE11KQ5EVauSUdHmh8u6WhNkNq0eNMJ5X1UEFWgsw5f2HPKdmP0Gad1jMS+xCu/mZAoYupKKXEqAA0r2yPlzbGWO5xJWkiVeFghiRH/XHTn0YU+JVmH0C54+SJ+JZwdWmEbWq+OSkahSDbf9g0aTIRKTE+pyvYYgO9CitFcMb8E7rRxaLPUfGvp5zBtoqtDAGrjeG8P5frwplOyGi4Ye9lGE+c69h/hY0B8uFC+j3DHqlyIG7i8SDDcu2SrpSjB2UPCzMGO5wN2CQU1SpF1K4MXyO/lIkz96Q7PSaJlyg30cDnm/dHpVm85g/hzTRL1ZAquwjzJsDJGnYCPZEa4wNN/5K6qFpx49nyWTdRVZ4vimfcRc2lksAApxybvVyScfSMiuIf7HZo33jTfKAqUbw4DxKFmUPCnOzIe5wg4guzwMPXA+TKLtNow6q+Z25TitXmf+GpYo2xqli/TZf+7Ly2lmqt4jk2PP0A2kegRl5stXhkZ3Va02BM0hCY="

env:
  global:
    - secure: "KrX9xcjj7tb4FX1DIJrMnVeWHbvyGngFlK7ARvwXPUGkP4GVKuZELQoF+Nuj90cr/FSGM8l+pyrcF4LQfN035DMkVaRLSpQPx8BnBbXttUrW/buD+U1GUTi6QdUsmjRbA5FjuQXasHUg+6+AZgjdw1pO75nNi0Ck80cTprFbhdmDjKGyEE3SOJyaFDQp3dqvTp2YRWGz2XEocbBpwj2hXgL3oqTP2K4xkzSEbKpXgsBbeErX3yGBKyWwCeELgUmfAtmRKiIINoWI5LsKbAHhKLQE0XztSmAlZjKgskxrqUaf5zWny8LJOlwGJChyBdxph48n8Ksl7XVdrJdGbfCZ26UARWdiOFN1Tb1lKyVgVlde+VxWe/jISx8BIjjxD6touEXy6I1KjhQB7qzTI9BAC/R2I8R5xhcxU6U1Gh02pR7YoKQi11aOXtsjdyPb+7e0CrU6fCH0HPImNwxUPZSewx+UZwIYJNabMeNArP8MzdlFNn+MyBvQ/DIpgLH0N5Eix7dLeDPi3rp9pBQ8C/Ksp+MQk8S4Rpjcl933+DY8KOKEQT8cOe4/qYaE3x3SX/b1EEU5f5wDv/TdbxDjkDY9PNYYqw8w5N9y6U/ip6TqjB8QY6cwBh3IV9sImbrzuMOb9GS7s1uC/1/LGTuBov2d62X8NigoIloQHEoaByaaewY="
    - secure: "MOB3lLDuIA5t2MBy6baVtU8tYGRIQlRqBjc4iMye9Jg7Xu8JotOmjKCTIRjQ6qKCDdUxw0bD2fh3Ujx/k0sy7BZm4RiVOybUg34d5y4RiMZqzqgua5JgZDDybzLepJQ16DLQgpgw+kDRvV1tp0tl0n6P+hVtcwMNdT8VA/hmEiS/d1hrZRfNPSOe3SvC9ynLB6g0l0cQRK3qNa1p3nLjkCcO54Cbw4W4gUW0E/7NKneS0xkWiM++Rk/w8tp1MqwLVfxJh1T4+h9nj1aOaa87/sUkQy3h4sVJjiBrEKj4Lh+ItIaujcx8+CzzofOdptaD7rEE5rJ4iZpMROrPUSskJcL0TT2nntYqfdyYuWLBwMv685ng/3su84jBVQ6IDVfIYZGujlan++uesSR7xc4IUWD/zkGnnYfrjYBFKQQDjIcwRvZkU0JpGPD4HbbTsbxrX+ZDe9S3Hbdb4FAU2B15qsgmjLU1HqeBzY+jj12n6zpQqFM3Fztkn5bXpp9BvZkSgGo+A2LQ614vFTPpXtyZT9Oe+/GF6WEy8eJ0/IDU1sxFbXk6oXz+msV3kz/Y0FQSzBtY66Ew8SP5E3lSgE0owbb6TX1ESff7OO/OU7RKPwzHEe72j9U9UNnSy+dzbZITxpZdDKNbmeUOHOomWBUT+0trBMfjjgvqqyWroGM6338="

before_install:
  - npm conf set strict-ssl false
  - ./tools/travis/setup.sh

install: true

script:
  - ./tools/travis/build.sh

deploy:
  # deploy nightly
  - provider: script
    script: ./tools/travis/deploy.sh openwhisk cloudantprovider nightly
    on:
      branch: master
  # deploy tag
  - provider: script
    script: ./tools/travis/deploy.sh openwhisk cloudantprovider $TRAVIS_TAG
    on:
      tags: true
      all_branches: true
