# This Travis configuration file is built after a Cordova Paramedic
# specific template with minimal modifications and adaptations:
# https://github.com/apache/cordova-paramedic/blob/master/.travis.yml

sudo: false

addons:
  jwt:
    # SAUCE_ACCESS_KEY
    secure: CpTKIU5+sYxwFDRI73/Yjhm/pIzlTCRhVJRqe6SkN5WlrB+rtx2FLuwwBY5wAYMcUcRWLa4KOARFfdNSOU3z5EMZb4WiRfSrSZYLvrMA2qN9fuBg8RufNwcVXRo6TFJhlqOMsFx2mpjGcsV875Y5sZP62h+SbtdeMloHbWkFI3wjpVd7ut/U3/nBZ7e/cQqOdqFJc65EzMwUfDUvHAde259WhSUx5zEy1aCNNFvuCGYzvYL+B7wpweGVXgOlOLpxSAgWQte1esNGfa/+LKmdwD55OszScxvoSmiha0Ux2ctCUNxStD4mhSeGvDSdJFFWxvLEnZ769Yc7zh7/7yJ4iJxw3/G2yXXVCAPD2aXmsXcLD8x/KoiDwoTyOD9302FdXMTPaJEAD5inNkK69dftn5xfErBNb39JZTQuYcfav/DvFlqciTP5kCeIC3/t3zfeQcLbP5lgFoR+tTKbkvuUAl/Vo6mw1pt9BSSztbxgDJRHKXTi904WIonLlTSkZxMOD0Y2KVDHhNLzUcKA9YHt42FUp7T1EbsHsIzzwEFsR3cMaQp/Ku/X62mZscKycsrKoReX8hU1hAkWPwtxUtsKjHBVTkJNdPJLMpt53jVbh28EX09aY9niRm2puJDgWPHIqr99zEUlqLyLSKr4KERTz2ONq7wSSLv+AMeJgDyfyTE=

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

_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:
    # 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
