name: Pull Request Check

on:
  pull_request:
    branches: [ main ]
    paths-ignore:
      - '**.md'
      - '**.txt'
      - '.github/**'
      - '!.github/workflows/**'

jobs:
  build:
    name: Build CI (Pull Request)
    runs-on: ubuntu-latest
    env:
      CCACHE_COMPILERCHECK: "%compiler% -dumpmachine; %compiler% -dumpversion"
      CCACHE_NOHASHDIR: "true"
      CCACHE_HARDLINK: "true"
      CCACHE_BASEDIR: "${{ github.workspace }}"

    steps:
      - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
        with:
          submodules: 'recursive'
          fetch-depth: 0

      - name: set up JDK 17
        uses: actions/setup-java@v4.2.1
        with:
          java-version: '17'
          distribution: 'adopt'
          cache: gradle
      - name: Install ccache
        run: |
          sudo apt install -y ccache
          ccache -o max_size=1G
          ccache -o hash_dir=false
          ccache -o hard_link=true
          ccache -o compiler_check='%compiler% -dumpmachine; %compiler% -dumpversion'
          ccache -zp
      - name: Cache Native Build
        uses: actions/cache@v4.0.2
        with:
          path: |
            ~/.cache/ccache
            ~/.ccache
            app/build/.lto-cache
          key: native-cache-${{ github.sha }}
          restore-keys: native-cache-

      - name: Setup cmake
        run: |
          echo "ANDROID_HOME=${ANDROID_HOME}"
          echo "ANDROID_SDK_ROOT=${ANDROID_SDK_ROOT}"
          mkdir -p "$ANDROID_HOME/licenses/"
          echo > "$ANDROID_HOME/licenses/android-sdk-license"
          echo -n 24333f8a63b6825ea9c5514f83c2829b004d1fee > "$ANDROID_HOME/licenses/android-sdk-license"
          ${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager --install "cmake;3.22.1" --sdk_root=${ANDROID_SDK_ROOT}
          echo "sdk.dir=${ANDROID_HOME}" > local.properties

      - name: Setup Gradle
        uses: gradle/gradle-build-action@v3.5.0

      - name: Build with Gradle
        run: |
          echo 'org.gradle.parallel=true' >> gradle.properties
          echo 'org.gradle.vfs.watch=true' >> gradle.properties
          sed -i 's/org.gradle.configuration-cache=true//g' gradle.properties
          ./gradlew :app:packageDebug
          ccache -s
