#
# 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
group: deprecated-2017Q3
language: csharp
dotnet: 2.1.300
services:
- docker
notifications:
  email: false
  webhooks:
    urls:
      # travis2slack webhook to enable DMs on openwhisk-team.slack.com to PR authors with TravisCI results
      secure: y6caEKjRnby723P1W8Rup+yioJRBV1YmqwGEEgPxNu9YGdef0m7TO8fp1BZaa/hHErYzYrfvOo3gwXBB7lkmZ9p1NfF/Cb5bjy5UwSx+EFaEjugFIoCCg+xPPTS4SM24+bXljiFZd7ZZGXu4beGdcgxmYsufRQoWJBF4Itcr424wEw+fSrPPknAotgAXjUyOOmr/xHng50mFqyfal1miR9vOiX1y/cdeAmaCmuagv20ry0ZpnOyMYCdH0LtWIDAxSDn/GTXBAwLBy2Wn05uE+Yqh6EI7xRvYBtT0PfaBFwb28pmkArYG9ZpXB8cwUhuLQZ51zFt0uHMetzlThbw6pO0X9FzGcT/BBlUaZbUaY6zar8FkRzija72HLKOY/yAN8VkhGlDOz2RSI3Tw05vep4Y7ZVRF9/wW0KnKB68VMJuwCbzgtCvWpgRXbxxLcKvKYsBVnkcWY/fwMxG5q8gQ2ZELf65975MVMn/oejwAcJkP2EOBBFpHGsWvEwNV4ymTD00XX1qeebfYQYTsxUOEUFrvu3p4GgqI2MQksgWusGaHaOTG0XHZ7afbZ+4EdPA098rPFaIcnq5E8PVZ+IRzn+5aupAqXy/tY0i4V1U7H4rtF+6u3PJpAIcgVo03wmzNcnsw0rVcAqKbIxn/oyMaIaGtb1VaKYQZJ4t4CCo0cEo=
before_install:
- "./tools/travis/setup.sh"
install: true
script:
- "./tools/travis/build.sh && ./tools/travis/test.sh"
deploy:
- provider: script
  script: "./tools/travis/publish.sh openwhisk ${TRAVIS_TAG%@*} ${TRAVIS_TAG##*@}"
  on:
    tags: true
    all_branches: true
    repo: apache/incubator-openwhisk-runtime-dotnet
- provider: script
  script: "./tools/travis/publish.sh openwhisk 2.1 latest"
  on:
    branch: master
    repo: apache/incubator-openwhisk-runtime-dotnet
env:
  global:
  - secure: Y1ldwIQ6bc3/3Pc0E+qQ6K2M830B9BObYDlsNilPwF/kak3YSfF7SuXuRbJGjTdhH2KOotZD2CwONgP2yvOSPBToC/HpnXYfAGtgblrxQORvgdik88CFWa3Lli1pwlpdzKQNWhBvglzq+IIS98wqzmwqGr8zKA+Iau2ByHdb1j3M9rrIY9V6oU9Gwim1apcRyfI/as3+QfPtt8BUAl2U7+PprxwJigyF/mcZnBJbd7IjrilE2gldZLxKlBiffoKVBinrEg3IQGJPt6k8riw264pBQEpcA0ZBsPUvMaISSxLb+d1ymp3WsiTJUjv+URR/HcdDa7P9jY+ouc8PQz4Yt+Ii38lM2tQU480APfVTyfj6drkjL/+54mYuxm8TzkBWcM2j6/FYT+8HvK/pF35wDJ3El+jGq7BARXg8HVxFsZgynJnhqhWDQb3xX9fK+N4K8+ct+HlsOSa5mP5i5Yo6WRTrWrFpyxVnv9crKePCiYqA2Y8ta8Wnh0sM06nLRtDbfbDjvXPQbaZqSnL4B2Cto08YoT/W/lu8QgJ3EEFlUdDOke4kv9yoXtuE0h7+8dwOvBNMVrBis3G2EYObgR4WmWjk4loYhqT9h3jrH0/5bGLzSKc++qYW0rOZ/RB21cRSe1ILQvSzWkImUoPI8b0i5baGSDq3EjTXYr3pIXSYpQk=
  - secure: DOg+FgllLbyv7nEK3JJZfO/cvXy5K0L6QI/S9EJ/ivm4XBDCw1ayhrSQXvp1tMTPbWBEIv2gomPsHghJ+hVvX3dgwYdoNz9WZaNBB6lOO9U8OQW0LBsO5Eai6grzqOP35OuKtthuyR3dGJHAZo/XjhZM/jL0z6q1kNDzdS7ASwRwHJG0rHPGVlGeolH4nAity4KNJvyAspS1FYaIj9FEC/M7UT6nJVACbr9iMt/83teF/Oo2uoFI6Pa4K3nE2NViVFibToNOM3CV8kArDPDoNJviXxQ07ZM6fNijwehZ80waiPSaxFY8PLSntQNxGyB3DbomSTCcdVvtuHHQVmZgpVdvOJE8wk3R09+nq9U9FuUWLiRYSRbF1eF48YFnssPW1jEeVSenFRADcQ37e4B21ssLvXRHpQHpPVrYBZ8ffDamS7pKtEqocX/3Syc6irxHGCpxEdhvQ0Of5AWHhzB714VCijJJQiH9J4hEKXhMeAZ5SSt4eUavEHJKMhUcJ/aaku5w1+KtiYeOso1fTRbTYkEYb1A0bSNdXlGrYRRT+N683W7+ENiQIT+hTp617L/m5WQLIHfKe3gy5qt46kHFiUL3R3YlBI5OKjnLkDnUiA+0d4SFtJC/TBuPmH1fG4isAuvggTjzCb3kUG3ysin8AW0AKaXW0eqjKa/nsHWDKmc=
  - secure: rouRBDS18tqR2nkOyR1PVJrVBlpKrjq9LlwFMYuVmL/NqrPNaEMENvwm0aCbfbaJKz9TlyceAphSXj0uyloEe5bqxl0ZhagLkWLyCCwTZTVhFDsZ0R0s9k9rthWDQ2kC5BBwWsCejy5grg7yYU1I7Xkhwzj1iM7TRp3Tp1PJSHsWBYd44TzBStMAZOc+9IsywBjaeyvwZN3j3eLXjHrsej/8l16pu1IjtMZmrz+0M6Cp4qOMTGwXHcwLw1TpwQuQZw4Jvi6TlvIPgkY83Pt0oO7TIF46W6O6OjhKrgHEFfy0nu2JwKYT7kbFTlbLlXLj3OBJhwdXz8G1qJ3IHayd7rxF7gj2ToYFrv8ms2Q4IqRM1bDSm9TeC0nlbgpUSWDT6fzvJXE18KW5/YJVern1Q8fU2ejfpTdmDdWjOOaZZzDFfdog5kcOFVQOPHBT45Lklga/rY3lNMRtx9sJUMYfdR3obnBRmW6nQu8mRd5JHX1EROVjEHW9tnLvDQow6tbs6x1LMwM0oOvs99cPqE2NrhRJPU8/eLMg3Lxiz3cqm/oYhQlP30CO6ynCIM6Jxpj+Xpn28YM6GfET0qzNHmxkWS+oNUjO2NJNddyvE/W2qDGuUQYrJxTIiKVFsFXWIoaurnCWr20jdCLUY0MBpb9vIRK0lcrgWkrIH7WIOMeJcgI=
  - secure: QIfsMObT4b1K2l/xsUAI4MqyCorEJMu0zgmMZnoms878e9You6VClexEOuQNJhWX1lzhRJdX+a6jkkWOz1aMbI1iDjt/rjEZuciHpv0KHqQ2xHlkg1v56Y8WOSOSrc5XHtwe9auw9owbaYyc0XuuubhtdJMv6/oCSSPSNKOT2wmGTkqbJtKZ4ToFphCwMKErhe3pbbIqZ51hbZDUuZ0N3kZKXKQoQBBVlVGi/2/YqUq03j4D8HHyvs2EoZD/H/DOLy+QA/i067ZSC7ahRZwsabWNfbB99yVaN1VmFAZXCasQ4WdP2Wo3Qm1+cUT5G7wiZDVtoRArhVZ+29qd3xSuHmHw87E8Uay6RjbwBYqxh4jxdj1QDfEpH3XbhxW5FxvgiI9twiMc7gANj5AMVyvuQPwX+P2rk44s8TpTBaOZ5qN4ys6VMX6HPpLsJ7yQBVd94O7jrDrKC3anp/0Hfa5SB1wFExlbQM9NYQwbyvr0oldgexTepOx62ZSRUKW4jtmxJglcuGvZOy39WB8LfcmokVFxkZvSsfmmjpgIO8pyjeQx19sLeSn37zYr7SgVFMgaFQQLqHoeCHnzpUUkrg6ITFm7+Irf3K7QOkHe4rNnKT0Vh2WCqIr+aYP2rGEDOTvxsOqWI4vSnMX259H+hIK5wV5Xond9ke2g7WHU9fvT+eY=
