#
# 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
services:
- docker
notifications:
  webhooks:
    urls:
      # travis2slack webhook to enable DMs on openwhisk-team.slack.com to PR authors with TravisCI results
      secure: "KM9nzdNtis/a5Kvb7coIMhlG0dspIyeVjVD3sVRczd4ViM86W/OV+bT9YIm8HWBzONTQp7K7BwIsWTjcY/8VZ/4ja1F0VnbLV9yldqckfFw3kJxra2W0mtmmWWqNTHsdbuHi2F2Hz+0+ZFWb08oO4nkpYtt9XlzVEv8jV2jxl/NQY5dIMI/3dY5EIrTb1/1Rt3SFv1Uzn+eWCCxFwy4V+/6TimqeHUMqKhVBJaf3miXUtTHHr+v7PIxmmRuX1AclJ/uLxYZdf1fLosWzsHU+DB5TpQFh4kG4POnLk8OcYI73TSaHcfJc82aIkdZKVLDBs8EiMM46kO7bXmKWH3KWsy0RLHIrQZkd7ucsg7UI2bGW42kWUb0PJQzdy6vkP+4+n3nEH+0/cRHinfalQER2wl+0J/nkhis1sNO9Okiq+6mbpp9EbHLbYE/GG9MuHGKvRYRfuRlZ/vlKlUhn3pPqjgjSDE7Gly/XlEse+8qHgqXoRp3VDr7fdI+3Q5c5532owtt3xBFJK+21bFfUz0mbtbzYIjC78EpqjG92LfUwmxhDVqvY921RHTZj1S3mK7Bu9kVQ/iIuCdJcbqkZaAfSM+h8HsVe7iPeHcztJxIzOn9OmePhOQQAI44TIA9s8mfvnAe8GoYbERruMved1mbX8e+nuPNvRfcKW9oC4y37R4k="

before_install:
- "./tools/travis/setup.sh"
install: true
script:
- "./tools/travis/scan.sh && ./tools/travis/build.sh && ./tools/travis/test.sh"
deploy:
- provider: script
  skip_cleanup: true
  script: "./tools/travis/publish.sh openwhisk ${TRAVIS_TAG%@*} ${TRAVIS_TAG##*@}"
  on:
    tags: true
    all_branches: true
    repo: apache/openwhisk-runtime-rust
- provider: script
  skip_cleanup: true
  script: "./tools/travis/publish.sh openwhisk rust1.34 nightly"
  on:
    branch: master
    repo: apache/openwhisk-runtime-rust
env:
  global:
    - secure: "lBWj5+2MT0zlARYF1kC19aPW8y+bSBJ3Eg8sfvwAhfawQXVZFCVm8NTJTyYAi37OR4/G7hkGICVrwBGC+VQlvIw9jBgJjJfhIkp6mJ2PLG5PABIKmI1T3SY2y6eGuUDiBBWyIJ41D/F+0wUwC10epPyesVOaWbnYydmwEh/3+cdVWEPyv7mwzkZ5mW0byu39iBvbk2wV2A6Dv2lpQCrZtzKMoflu2N1A7XxdZ1hGj/bf1LkiGpicZx0ZKNilNRDGm+nRjdCalgmviF7rf+cBJjqEss0L4kfeQbzSlXLbNxbyoQjDVF4aat8Cvyr2Ht+H80aMj4hu0W/veSaTzD66+Q+aS4LK6HtuRN15OZ8OM1NWvKoyqj/jJeyGXSCEbOtzW+cgbR2qItNqy2AefhDkzwXWS09GXbd3VPVq45I85iDCuNrfdEZc/3UiclqbuRwaBk2MfqNf+iF5asjZcureisWv/X1MnbJZtWdo5A+RqGy9g4yE9chGyqGPhokcHrRhjodQfSukIgd3me8qNPXw0tebSkikykdr8YgKb4f/XKErIu++uXCeS2rq1aV99jvC6ldmod3nzV31EgsiRY7/3TY8KFUmLDtw7Q7mstyc7pjjakiLi7FtkcuFlIGswXsjLt9OAwgv5WX1Ashl2t+lB65hZ2Lw4H2v9M8if3uaV5M="
    - secure: "Re9psYEPQ9ZK76a2Suap6ZPF/ui0FxEaMCHBondbQhobtNo2B5aSkAzBW5ksCmsjSq+VLnU3MyLLB7r3ahst0B5lM1HE8r10Pjb6rX+a2yvd5JHkpCgE0JNXqku/AnuEu3Y9yJnWo/IzwPYDDNU/3DrtBJegy43XdcpFIHynmqFD94LvjO9d8O8EBOi8pou1Rs6BbPafCLRavJn61EvRBz4lv2ZaMHgpu+b/5+vwXHCfpzbWRTuf/CN2WVQKujEVVCqaGzlFDKjPHjx0bdS65XHhgC+mnOH0n7uBjY3Tsmq4xNTmN/3yaIucTMWj+M2LGhXgKFMn51gUZTXEc7eJvQ2BPfmOY0AyHKMzJ2XkfcHVjsXINOtqqRHiH1spBlGDsPBsxkHCqxL988eLuDMIPsJXn6QrpjRVQh5KEdSlCzko73AjzkcubkLUXCaf5H7UrhrWHYjj+UWnVZ6jf6S2hSZ0OhT9wUMhzWZwoYOptdIKhaBNdJWLHl8PpW457+m9I2LojTFtUQkyiBoyn8F8ahZE2cFgYfzTQ1zrkPEENEfSl/nGPE7jeRdlLjzjsx+BbIJk3BofZISjELaYj8Gc2lRLfTycMq7XL4uZmoSXt/rTSgqtJmNpYeBKR+oBYVCFMnim9D2Y1I92mRWEtKhXetHqMNZqBmFrWeMXW8V12Yo="
