name: Android Build

on:
  workflow_call:
    inputs:
      NVMRC:
        required: true
        type: string
      MAP_IMPL:
        description: "The map implementation to use (mapbox,maplibre or mapbox-gl)"
        default: mapbox
        required: false
        type: string
    secrets:
      MAPBOX_ACCESS_TOKEN:
        required: true
      MAPBOX_DOWNLOAD_TOKEN:
        required: true

jobs:
  build_example:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v3

      - name: Setup node ${{ inputs.NVMRC }}
        uses: actions/setup-node@v2.5.0
        with:
          node-version: ${{ inputs.NVMRC }}

      - name: Setup JDK zulu 11
        uses: actions/setup-java@v2.4.0
        with:
          distribution: 'zulu'
          java-version: '11'

      - run: |
          mkdir -p ~/.gradle/
          echo MAPBOX_DOWNLOADS_TOKEN=$MAPBOX_DOWNLOAD_TOKEN > ~/.gradle/gradle.properties
        working-directory: example
        env:
          MAPBOX_DOWNLOAD_TOKEN: ${{ secrets.MAPBOX_DOWNLOAD_TOKEN }}

      - run: echo $MAPBOX_ACCESS_TOKEN > ./accesstoken
        working-directory: example
        env:
          MAPBOX_ACCESS_TOKEN: ${{ secrets.MAPBOX_ACCESS_TOKEN }}

      - run: yarn install --network-timeout 1000000
        working-directory: example

      - run: ./gradlew assemble
        working-directory: example/android
        env:
          CI_MAP_IMPL: ${{ inputs.MAP_IMPL }}
