# Use Docker file from https://hub.docker.com/r/runmymind/docker-android-sdk
# Last docker plugin version can be found here:
# https://github.com/buildkite-plugins/docker-buildkite-plugin/releases
# We propagate the environment to the container (sse https://github.com/buildkite-plugins/docker-buildkite-plugin#propagate-environment-optional-boolean)

steps:
  - label: "Compile and run Unit tests"
    agents:
      # We use a medium sized instance instead of the normal small ones because
      # gradle build can be memory hungry
      queue: "medium"
    commands:
      - "./gradlew clean test --stacktrace"
    plugins:
      - docker#v3.1.0:
          image: "runmymind/docker-android-sdk"
          propagate-environment: true

  - label: "Compile Android tests"
    agents:
      # We use a medium sized instance instead of the normal small ones because
      # gradle build can be memory hungry
      queue: "medium"
    commands:
      - "./gradlew clean assembleAndroidTest --stacktrace"
    plugins:
      - docker#v3.1.0:
          image: "runmymind/docker-android-sdk"
          propagate-environment: true

  - label: "Assemble GPlay Debug version"
    agents:
      # We use a xlarge sized instance instead of the normal small ones because
      # gradle build can be memory hungry
      queue: "xlarge"
    commands:
      - "./gradlew clean lintGplayRelease assembleGplayDebug --stacktrace"
    artifact_paths:
      - "vector/build/outputs/apk/gplay/debug/*.apk"
    branches: "!master"
    plugins:
      - docker#v3.1.0:
          image: "runmymind/docker-android-sdk"
          propagate-environment: true

  - label: "Assemble FDroid Debug version"
    agents:
      # We use a xlarge sized instance instead of the normal small ones because
      # gradle build can be memory hungry
      queue: "xlarge"
    commands:
      - "./gradlew clean lintFdroidRelease assembleFdroidDebug --stacktrace"
    artifact_paths:
      - "vector/build/outputs/apk/fdroid/debug/*.apk"
    branches: "!master"
    plugins:
      - docker#v3.1.0:
          image: "runmymind/docker-android-sdk"
          propagate-environment: true

  - label: "Build Google Play unsigned APK"
    agents:
      # We use a xlarge sized instance instead of the normal small ones because
      # gradle build can be memory hungry
      queue: "xlarge"
    commands:
      - "./gradlew clean assembleGplayRelease --stacktrace"
    artifact_paths:
      - "vector/build/outputs/apk/gplay/release/*.apk"
    branches: "master"
    plugins:
      - docker#v3.1.0:
          image: "runmymind/docker-android-sdk"
          propagate-environment: true

  # Code quality

  - label: "Code quality"
    command:
      - "./tools/check/check_code_quality.sh"

  - label: "ktlint"
    command:
      - "curl -sSLO https://github.com/pinterest/ktlint/releases/download/0.34.2/ktlint && chmod a+x ktlint"
      - "./ktlint --android --experimental -v"
    plugins:
      - docker#v3.1.0:
          image: "openjdk"
