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

language: node_js
node_js:
- '12'
- '14'
sudo: required
services:
- docker

notifications:
  email: false
  webhooks:
    urls:
      # travis2slack webhook to enable DMs on openwhisk-team.slack.com to PR authors with TravisCI results
      secure: "ovQJRc9+y4NDh3kR0Pfay7DaS9XNVf2GrdClxWEC8lqHA/zSYRSocm9TEiOKsEyfhcyeH00PlZzqowJdIF+FxWaaguftSutlWGh5RS430T3R9fRH2cnawZul3tUJArkHjkbQKB3Rbyrtw0AUalnaO/FSTygIqQcJN/HoUPY+cBdMtueqRBiTaEBYkFivfbrFNXRHHf7/3c1pVbJWeZNhULz6dmtqr/t4glQs0cy4HZLL5uMM4VrojYYlBoXOQaK6SsizrN0TL0eolqbp/5Vd8dApFYIPRjZ1QaIx07NoAhy6tjVi0WR9PVi/kOwKUgRlAkOjn53Og7ToNO6sgkExjiMdBxfclmO4pc7JoUPxz22b6adzK0JoOp422ZJMnaKWHyg7ruFxCtWTCa448BDSyMT07Ei8yhPxRVwY73iVMSj4foonTCXVMCzPZP0Vt79xyu04A4hjtkBLaLbwouLElOxqWpZymnj7VNNWeTlfjkKfEezjl08jQrmCKD63ASwgKALg/FXV2+gffa140MkQnnXC8Np8pZNYSrc5FwiLk2VrY382MLF9c4N7GlbG4WvR416QqvFy354FNeaXcps04JLeCjIovaVF9qnDzfjlkVWfMs+o6rvhV89M79HAK6vEpe2X563RW8QJt15pqGReyNe3LnKRJDrympuF73XVKDQ="

before_install:
- cd $TRAVIS_BUILD_DIR
install:
- "./tools/travis/setupscan.sh"
- cd $TRAVIS_BUILD_DIR
- "./tools/travis/setup.sh"
- cd $TRAVIS_BUILD_DIR
script:
- "./tools/travis/scancode.sh"
- cd $TRAVIS_BUILD_DIR
- "./tools/travis/build.sh"
