name: PR Build

on: [pull_request]

jobs:
  build:
    name: Build on ${{ matrix.os }}
    runs-on: ${{ matrix.os }}
    env:
      CCACHE_DIR: ${{ github.workspace }}/.ccache
      CCACHE_COMPILERCHECK: "%compiler% -dumpmachine; %compiler% -dumpversion"
      CCACHE_NOHASHDIR: true
      CCACHE_MAXSIZE: 1G
    strategy:
      fail-fast: false
      matrix:
        os: [ ubuntu-latest, windows-latest ]

    steps:
    - name: Check out
      uses: actions/checkout@v3
      with:
        submodules: 'recursive'
        fetch-depth: 0
    - name: Set up JDK 17
      uses: actions/setup-java@v3
      with:
        distribution: 'temurin'
        java-version: '17'
        cache: 'gradle'
    - name: Set up ccache
      uses: hendrikmuhs/ccache-action@v1.2
      with:
        key: ${{ runner.os }}-${{ github.sha }}
        restore-keys: ${{ runner.os }}
    - name: Build with Gradle
      run: |
        echo 'org.gradle.caching=true' >> gradle.properties
        echo 'org.gradle.parallel=true' >> gradle.properties
        echo 'org.gradle.vfs.watch=true' >> gradle.properties
        echo 'org.gradle.jvmargs=-Xmx2048m' >> gradle.properties
        echo 'android.native.buildOutput=verbose' >> gradle.properties
        ./gradlew assemble
    - name: Stop gradle daemon
      run: ./gradlew --stop
    - name: Upload build artifact
      uses: actions/upload-artifact@v3
      with:
        name: ${{ matrix.os }}-artifact
        path: |
          app/build/outputs
          app/release
