language: android
jdk: oraclejdk8

env:
 global:
    - ANDROID_API_LEVEL=28
    - ANDROID_BUILD_TOOLS_VERSION=28.0.3

cache:
  directories:
    - $HOME/.gradle/caches/
    - $HOME/.gradle/wrapper/

branches:
  only:
    - develop

android:
 licenses:
    - android-sdk-preview-license-.+
    - android-sdk-license-.+
    - google-gdk-license-.+
 components:
    - tools
    - platform-tools
    # The BuildTools version used by your project
    - build-tools-$ANDROID_BUILD_TOOLS_VERSION
    # The SDK version used to compile your project
    - android-$ANDROID_API_LEVEL
    # Additional components
    - extra-google-google_play_services
    - extra-google-m2repository
    - extra-android-m2repository
    - addon-google_apis-google-$ANDROID_API_LEVEL
    # Android emulator
    - android-19
    - sys-img-armeabi-v7a-android-19

before_script:
    # Launch emulator before the execution
    - echo no | android create avd --force -n test -t android-19 --abi armeabi-v7a
    - emulator -avd test -no-audio -no-window &
    - android-wait-for-emulator
    - adb shell input keyevent 82 &
    - "curl -H 'Cache-Control: no-cache' https://raw.githubusercontent.com/fossas/fossa-cli/master/install.sh | sudo bash"

script:
  - ./gradlew dependencies --stacktrace --daemon
  - fossa --no-ansi || true
  #- ./gradlew lint -x fabricGenerateResourcesRelease --stacktrace --daemon
  - ./gradlew test -x fabricGenerateResourcesRelease --stacktrace --daemon
  - ./gradlew createDebugCoverageReport --stacktrace --daemon
  - ./gradlew jacocoTestReport --stacktrace --daemon
  - if [ -z ${SONAR_HOST+x} ]; then echo "sonar scan skipped"; else
      git fetch --unshallow;
      ./gradlew sonarqube -x test -x lint -x fabricGenerateResourcesRelease -Dsonar.host.url=$SONAR_HOST -Dsonar.organization=$SONAR_ORG -Dsonar.login=$SONAR_KEY -Dsonar.branch.name=${TRAVIS_PULL_REQUEST_BRANCH:-$TRAVIS_BRANCH} --stacktrace --daemon;
    fi
  - |
    if [ $TRAVIS_TAG ]; then
      gpg --yes --batch --passphrase=$SERVICES_ENCRYPT_KEY ./app/src/release/google-services.json.gpg;
      gpg --yes --batch --passphrase=$ENCRYPT_KEY ./app/key.p12.gpg;
      gpg --yes --batch --passphrase=$ENCRYPT_KEY ./app/upload-key.jks.gpg;
      ./gradlew publish -PenableCrashlytics --stacktrace;
    fi

after_success:
  - bash <(curl -s https://codecov.io/bash)