#
# 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: "pbZEezFpR0lM2xakTVWEd0Lkx4QMBSdcrZBrvpXSVc55rmWTghOvzz0Rie4zlRO8M1QH5vSwGHxwbkGSog0i4DF7rSIY9yIRd4wDb3r2V4zNEhgWHwUznkxUsH/nNgnpB8MVegezOldWCmct2KC+eg/K/zGyzYXX+ZhVR8niu+FZsWYgC/K/TblldNzdKEk3PzeYFgHmxBVOeIOXkXyTnqpBzPotgFQ+pLAeUgghVtGnOii2z6PYLj0OHS0Si6sq5BfZ19FFGOIBbqbyiSCp4bvCn04r979ZgTJENF+4F/r7zN5B+FDk03bBsqr5XnWT7L7E35RqWYWK1jkbi4VFLJ5gc9tzIKhzU4xHlsuF8ZvH29NqAvRWoGflKyCBMaXV6RaSlfWUmQ8tBXLXa4ORcJHpzB8JPiADWjy47gfxlK9kz/T+yN9FsYTU9uaKnb82c8Re0x+7gxLyvcVFEBrvfgb7nAblEzjGIptPh+SkroWpWrwPKVYZXTvrqpZZL+aqN3q6x7ynt81qYA0BK6Z2GMvuLJKraTQGxFi3JyCvoiXrd72unK53borxkFWWhG2YCwnduMJIfek9AbVYAFI9DRDFL8kPP1tnACoDo5OMxofDQnP9iBnWpKwHNVLDqOwfOY97iYDhp/cyCQYELtFweV3doSTVGnl8goWCFWNmmyA="

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/incubator-openwhisk-runtime-rust
- provider: script
  skip_cleanup: true
  script: "./tools/travis/publish.sh openwhisk rust1.34 nightly"
  on:
    branch: master
    repo: apache/incubator-openwhisk-runtime-rust
env:
  global:
  - secure: 0Zk7istlUWhzCAMQvNSYEewgQmOF4uexJH/yh+35sifvX60tM2Hpq2ieZCgvTNgLhHPZmEJnRxldAgWGnwax4ROQyzJR+Qbu481KatwPEw5j+PpBP1rFUA5evYJC7gCG1INffliji0yd6WyoUMlwasMEyeyaqfRmdw3W4wMUXF/z1ya6cgAR9HxKegiOxtp4qjeFGk5PcyfxY5PoWroLeE3gpr5mjb7KoW6UzkkSlhJEsI9iMHyoUTln9ZTsLmBiGCmWC1cp6vaKq/K0t1p4bFm5Hg0vJMbb230jcdP9NyvLJJd9UX2eH0G/ER+QzkSM94OQwhQjTzPppC6YAluxUg5ZYr+Ik5ASHXc4WJXag4MRIrur24d60YI0iwodZe05c8ZA/Ksj41RscrbMBv3tIxDalJtY8DNfdfSL3qP3vZEFPyyAIs9jpUm36nY+VYlW0rP2AiEQNcv7rNNGCLqKVQnlbVR4ccCYbQovcjghzpkuL2A2zFqD4XScU2uj4bJF8HxB/LQCYrSXYUUh11+PE05idTH9X4+JE03Yal2qoX2Tn+a5HO3mkwSEjJ+M8QTuiB1kPLn7CnfPYJNsC28ZFP4HpfhpygWfAIFQmTQoqDGi6q4zi81LcYFeWnz+0wE+XqqoB6C4OwsTA6gM+bTR67mpibOPLSQ2paIRJdl+Gnk=
  - secure: wwxICr/9NXNF1xTijUW2187d/EuHsjN6QhFW0wkF8hoJALl5MYvJ5FAfInPHchcZaiqt8p9fAgcnNaUiQ4jDmDomDVDQUzxw/Vkr3jOPleM/qeL7RJUHWXnBgKbEU2R89HWPSBCc2KUcyGihJcjPGs9banx41heiTDteXIq/P/+bmOjn3DW4wuazTum3fpZD3r/GE/1zhJN3WvGGJoei2BypSI41FXVdrl5kdkQGWU/XFPhV6ER6G8Y2OIPx/9iOpy8mvhKBDR5HKelDz5xTDUYn5c8V7/Mi5IyXWVzDPFovurlN3pf9Mkqyf0Pc5uGgy9UU+Lkq/PsA/jXaRKq3tJm5idD2VuAAGQpyPh0RHKdckX2xM551q1sWr4UVgFPBtCumguRi8jXBRQh4BkxJWm5UaHJh/i6eN634d/qUGJKw0sktWYFOkoY2mebkMMfFhu1a0dPzBB2D8uqRv/7oLDgx16RI4eGCmSIydBm27L+qQ11mS1chmORpoH/1MQM13zntIcZkBhRvZ63GgehABGGUHnYyGZAhhbsWXiW1Yipc+hZ4KJG+99KY5lZRbaCOKR+4u8xfsXr03JL+dELlQDDJkpWoY12Nyq6HdCovAFa8Y/hxut77UUQw71hOrg20AfzRX8tPI5ogb2m/LnTIxJ/nM13Lt02M2VEs+Oqm5hg=
