# Licensed to the Apache Software Foundation (ASF) under one or more contributor
# license agreements; and to You under the Apache License, Version 2.0.

sudo: required
group: deprecated-2017Q3
language: scala
scala:
  - 2.11.8
services:
  - docker

notifications:
  email: false
  webhooks:
    urls:
      # travis2slack webhook to enable DMs on openwhisk-team.slack.com to PR authors with TravisCI results
      secure: "NzZ1Q8KiPUezZXiIaHxsq07OLycJHOvnHvhjEtztk+XUGm+gjUKJj/OUPVLqLFGbkafORtQScDQlpnrqo1mINb4hv2XVA0ylvSvS+7nzYSzH53H4r9zT3jKRUbiagS9nVItZ4wIsRANM8MkdnBUqk1QgkKTozRih4GsDRV5dRcflLcPMSzIsx5ub0sLKI9k4alny0wpvkGx8c/pvRUFqW2U2ES262X8gbgo1FLkGYMANbNUyxh3I91SRkVTKKUKKPXTQDlFCo6QspX8lhuakt5TVE29IYGPNq4tGVhu+eHnChMrNpOrQojx0wsJTIxvyJX90JDrK6FrUe/HOJmoCitTsDFCwAk5smEcP6L1xHi9hP6zVrVEclF+8pph6KNhrgH2M0qrIZ+Lr/HhVRQ0UJK4T0T2dllUAaOQ9ERr1j3rXe/OAeMlYFiVekgCZsjQ/g64LPnZWMlDf1dHZtAI+eYYm6iWJVfyzz3EfzQQWinltu0eFVRZFskNv5+S+jsg9kIhGshB2jW329qJzevYaQH/dgn9+3kAR8IyB1o1JULAxm6PQCRPDPUTz5x4cyQhhAe5we3vOnb0TwUOEu/hLYwWDsrcMtEXLhOgazawshWZQtXh9e4lMMs8dmrsyCmiu2sFlvH5UYG9+FJVrtUyAXn8v+8OQNDanIWllJvAPG64="

before_install:
  - "./tools/travis/setup.sh"
install: true
script:
  - "./tools/travis/build.sh && ./tools/travis/build_sdk.sh && ./tools/travis/deploy.sh
    && ./tools/travis/test.sh"
before_deploy:
  - "./tools/travis/rename_sdk.sh ${TRAVIS_TAG%@*} ${TRAVIS_TAG##*@}"
deploy:
  - provider: script
    script: "./tools/travis/publish.sh openwhisk ${TRAVIS_TAG%@*} ${TRAVIS_TAG##*@}"
    on:
      tags: true
      all_branches: true
      condition: "${TRAVIS_TAG%@*} = dockerskeleton || ${TRAVIS_TAG%@*} = example"
  - provider: script
    script: "./tools/travis/publish.sh openwhisk dockerskeleton master && ./tools/travis/publish.sh openwhisk example master"
    on:
      branch: master
  - provider: releases
    api_key:
      secure: R+7PrIf0bLqcQJ9XRQX1Arnund9p0CRdn4TQbvK2kz0h69y233FS7JVa+U6mEptzUErLa90PrONDfB/iNC1YLn/pIfGsM2l34CTC0OQPgHRuY6uBg48jM7rRAM3nUHseFHF2o9Hh0zXZRI4lj+nYe1LTR0Xsn50AGtPAeIEHItv4ojGzujgeBZsjBjCSLbEGxRjP8XqAgs/PA4QrmcSXlP4fEwidEOp3wqAaTIpHRksu7nv3j8H3IpWG6M3hAYn0LJcLi5pF4jwsq85H/+BGRp0ZbVW7uZtpl/bI5T0DkmPXEI4ywcwb3w8CCFs9WMNwB9zMs5j3MFX2dzzPNLJ5ostuEY6Vwzz0tdaqEoAB7n2kLd0akKX/WJiu7Jh35Ul3tYhLpNIWmO6bjaYY7fEdtXX1WLBVIlJIEd+wfDd3a85sIFTQj1YT9os1iS4B3vc9tpbw5D51qzqSRNtoAfV3tablp5obddhKe8iLeSB41lY4Qm+K41IgwxWKiRiNXDFkOPaa3MgAanGzzouQYrbShw+k7oCg8yJqX1NH4vP1H1CAa8OCAdw4aa06xHUk9kNQfIeOl4n9pBRL5dS4VGccCKulWf6ZRo3ypmP7sJL/vbrAs/lZJNteImrm0MtCPJq/5H5eOrQ5A/Kd1hkK7kquXYsXATgVFkasHqWUH6lKurE=
    overwrite: true
    skip_cleanup: true
    file: "./build/blackbox-${TRAVIS_TAG##*@}.tar.gz"
    on:
      tags: true
      all_branches: true
      condition: "${TRAVIS_TAG%@*} = sdk"
env:
  global:
  - secure: DG9V6udwMMKoDbFZJCjau0KAdUTPqGCIBvrPCblpXYEH35QcpxR9MfL3A42h4AbQjsmn5sg7zIMkDI1q5Fsvo0ood8z/mrUbPldF5dEnSPwzjV/ErGoFWPdKyPvkyO567XQD2GU7ZL1GjB/marq2qS+zx7ZCbkxAJSOiDS5/c3dD2yt0QHKkMKYt5Au+qs674y2VPNM6gUwtxY8GjyE3I6MubIqmimUAHcdt+PBcIeJOF2CET01KiOUVRUaKlKgSnkKks31ojKMcwwHJue7/KJ1fbUMz1traenGKA2NoD4qR58QRYCB+W47vKvtX6K7jL7w7Ck+IJ3MJOZjP1V8GKoNhfPgxuxZpWnJaZ61iaOYLAkwqr1bicf1qkDzDXE34XouGkocOJWvU4lE9MiuP3VWhpQAeV62pDDxnD8aApmbykCuhcD6cUwbbi7UF2irnOLdDLd8wpP3OCo9faHSqmjlnzzLR+KzZoU5J7P0NXTdLOEwBIyzvQv3s0AvxNazUR7vfA+HDU4qM1dyfKUKBJegAcbWSRpiH593FnWXYDWIn0Ib9ygnk68EfyEFTc4Ns3IZrYIJkOtdXcevU6vpQf8HFwJUxOJOeEKjbu/xNKWTjceBzsgMIk8eq4+Z4Ye84rPI3oQ99UoQlX3QjOyfgHzTH+mctotHM7V8puW3V2wQ=
  - secure: qbHuG/MuxDsW/OZActec2oQDCiuolQPDCdBGc/ExPSe4hWf2xofRAfvYsAd1JXZQgNcy1S11zJ/0RsPFYEo0eJhr/HFpHF0q37R9OqTvvasf0qwh6BQKpdJRq9SJQ1pW7f1wpwJykCBlr/XgVsntZ+ykOFTWnQySC5LivhbBcH21EIMy2WZTWZ6ACitBd798rXz+TgE2rjWLsOwW9MuqGFCcThkYR4auOmA51FjcW2ni77NARYCTojrYpGuKAaMZoo8RjwNfuQXmkzgzKyRDX1LdbE/03+E5Mqf4896ee+O5vCr6SgANnjqhZX1oh2z7UQ9myyrWL4MavZfpg4GWZNcrDsoBPvpfguOQzLBRGc21W2TR1YUK46x8AuoMsMKhrOmlBog3JAedDcNTjq8vNxdRpkSDAJqwuBS+aqTwqq8j2Ec9woXm8ObIzXUQ/X+83iihEHD4TsDhmLDiGJ8NjSOs0E5C1ipQ0tM83Yvcgt4yPyr0LsS9nlNAtTBI7iCxLbsDWgngW+lndYMeA1ytPEYlKwl/nx9s7KV/cLnGBNVpx3vJo4XQwTc/JFO7KVRJTGZ6jdD6vNIDW83AYrocezaYKvQm1GSE9GngM3NNv5uD3OO+pFTowMrh14qK6EdgNvNjyMXHkuskRjPj1PKmP4fCSPGlfltldIwqZQ39QJo=
