name: Eta Build

on:
  push:
    branches:
      - main
  workflow_dispatch:

permissions:
  contents: read

concurrency:
  group: android-build-${{ github.ref }}
  cancel-in-progress: true

jobs:
  build-apks:
    name: 构建 Debug APK
    runs-on: ubuntu-latest
    timeout-minutes: 40

    steps:
      - name: 检出代码
        uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6

      - name: 配置 JDK 25
        uses: actions/setup-java@03ad4de0992f5dab5e18fcb136590ce7c4a0ac95 # v5
        with:
          distribution: temurin
          java-version: "25"

      - name: 配置 Gradle
        uses: gradle/actions/setup-gradle@3f131e8634966bd73d06cc69884922b02e6faf92 # v6
        with:
          cache-provider: basic

      - name: 配置 Android SDK 工具
        uses: android-actions/setup-android@40fd30fb8d7440372e1316f5d1809ec01dcd3699 # v4
        with:
          packages: ""
          log-accepted-android-sdk-licenses: false

      - name: 安装 Android SDK 37
        run: sdkmanager --channel=3 "platforms;android-37.0"

      - name: 构建 Debug APK
        run: >-
          ./gradlew --no-daemon --no-configuration-cache
          :app:assembleDebug

      - name: 验证并整理 APK
        id: apk
        run: |
          debug_apk="app/build/outputs/apk/debug/app-debug.apk"
          output_dir="$RUNNER_TEMP/apks"

          if [[ ! -f "$debug_apk" ]]; then
            echo "::error::未找到 Debug APK。"
            exit 1
          fi

          mkdir -p "$output_dir"
          cp "$debug_apk" "$output_dir/app-debug.apk"
          echo "debug_path=$output_dir/app-debug.apk" >> "$GITHUB_OUTPUT"

      - name: 上传 Debug APK
        uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
        with:
          path: ${{ steps.apk.outputs.debug_path }}
          archive: false
          if-no-files-found: error
          retention-days: 14