sudo: false

addons:
  jwt:
    # SAUCE_ACCESS_KEY
    secure: NJr2X/VRsRjy/6cQqrx1kVwNH8UmVq4Ns90UjHMYFeSjacczc42qOCgMfCOxN8FBa5T6H7vqGnloTdpp56Vm1BPSLqX/M3uT1gM9/yGDsgKzEC90tt2WrGSyp7C2LRs5+EF+bj5hvFd+iO4bLA7nTnOTzgxwwzzsau0ljxx1VHbVHi2xOwuK7/ShwOhxfkNEHeJ76X/1sjssKgU++tU3uUAdiBqUupqpQmWVPsxKTp4svOcNNlBKqk+SMX8EDmeU36AXC3QBMVWmpug0z55gmmGsu8bAWRo6iKc9U0B43g5Tgw3DaRs/cNNJWN3mX/04hVJFJEzHvGaTbEvOXngHyDAtuDl9FiHYZpJK3H5eRhcXAh6IQXloYnXTzEQCIaX3N9p8gpFmMgOhMPy5a0iSIv2wcU1bNtzfbD5JokJp0vLsFphSrvhlOfKwOg0pq/dU66P1MTwHj6bwmxPK+GtQu8hRY/pA/yd9sTyuwp8CUyKkLWTSoQCqQ9xXbyJmxU3B8obiDRA/321LD8m4jlJy9zJO+pt/wt7zCh081G3bFsyO8VYLkhIQzXYQpppVLHArwImGip82T52c7OUtqknlchLdjoYHVd5zT8k3gqY5mVE6bIS4OFkXAFrQnBUafvAILUfSE7vcrCeNh8UzfGIdq3wFad1zc2NnCx/L/PUgpVM=

env:
  global:
    - SAUCE_USERNAME=snay
    - TRAVIS_NODE_VERSION=12
    - ANDROID_API_LEVEL=28
    - ANDROID_BUILD_TOOLS_VERSION=28.0.3

language: node_js
node_js: 12

# yaml anchor/alias: https://medium.com/@tommyvn/travis-yml-dry-with-anchors-8b6a3ac1b027

_ios: &_ios
  os: osx
  osx_image: xcode10.2

_android: &_android
  language: android
  os: linux
  jdk: oraclejdk8
  android:
    components:
      - tools
      - build-tools-$ANDROID_BUILD_TOOLS_VERSION
      - android-$ANDROID_API_LEVEL
    licenses:
      - 'android-sdk-preview-license-.+'
      - 'android-sdk-license-.+'
      - 'google-gdk-license-.+'

matrix:
  include:
    # additional `npm test` in directory
    - env: ADDITIONAL_TESTS_DIR=./spec/testable-plugin/tests/foo
      <<: *_ios
    
    # local tests, without saucelabs
    - env: PLATFORM=local/browser
      <<: *_ios
    - env: PLATFORM=local/ios-10.0
      <<: *_ios

    # many tests with saucelabs
    - env: PLATFORM=browser-chrome
    - env: PLATFORM=browser-firefox
    - env: PLATFORM=browser-safari
    - env: PLATFORM=browser-edge

    - env: PLATFORM=ios-11.3
      <<: *_ios
    - env: PLATFORM=ios-12.0
      <<: *_ios
    - env: PLATFORM=ios-12.2
      <<: *_ios

    - env: PLATFORM=android-5.1
      <<: *_android
    - env: PLATFORM=android-6.0
      <<: *_android
    - env: PLATFORM=android-7.0
      <<: *_android
    - env: PLATFORM=android-7.1
      <<: *_android
    - env: PLATFORM=android-8.0
      <<: *_android
    - env: PLATFORM=android-8.1
      <<: *_android
    - env: PLATFORM=android-9.0
      <<: *_android

before_install:
  # manually install Node for `language: android`
  - if [[ "$PLATFORM" =~ android ]]; then nvm install $TRAVIS_NODE_VERSION; fi 
  - node --version
  - if [[ "$PLATFORM" =~ android ]]; then gradle --version; fi
  - if [[ "$PLATFORM" =~ ios ]]; then npm install -g ios-deploy; fi
  - npm install -g cordova
  # install paramedic if not running on paramedic repo
  - if ! [[ "$TRAVIS_REPO_SLUG" =~ cordova-paramedic ]]; then npm install -g github:apache/cordova-paramedic; fi 

install:
  - npm install

before_script:
  - |
    if [[ "$TRAVIS_REPO_SLUG" =~ cordova-paramedic ]]; then 
      # when used in the cordova-paramedic repo
      TEST_COMMAND="npm run eslint"
      PARAMEDIC_PLUGIN_TO_TEST="./spec/testable-plugin/"
      PARAMEDIC_COMMAND="node main.js"
    else 
      # when used in any other (plugin) repo
      TEST_COMMAND="npm test"
      PARAMEDIC_PLUGIN_TO_TEST=$(pwd)
      PARAMEDIC_COMMAND="cordova-paramedic"
    fi
  - PARAMEDIC_BUILDNAME=travis-$TRAVIS_REPO_SLUG-$TRAVIS_JOB_NUMBER
  - |
    echo "Variables now are set to:"
    echo "TEST_COMMAND=$TEST_COMMAND"
    echo "ADDITIONAL_TESTS=$ADDITIONAL_TESTS"
    echo "PARAMEDIC_COMMAND=$PARAMEDIC_COMMAND"
    echo "PLATFORM=$PLATFORM"
    echo "PARAMEDIC_PLUGIN_TO_TEST=$PARAMEDIC_PLUGIN_TO_TEST"
    echo "PARAMEDIC_BUILDNAME=$PARAMEDIC_BUILDNAME"

script:
  - $TEST_COMMAND
  - if [[ "$ADDITIONAL_TESTS_DIR" != "" ]]; then
      cd $ADDITIONAL_TESTS_DIR && npm install && npm test;
    else 
      $PARAMEDIC_COMMAND --config ./pr/$PLATFORM --plugin $PARAMEDIC_PLUGIN_TO_TEST --buildName $PARAMEDIC_BUILDNAME; 
    fi
