name: Test setup and build APKs archlinux
run-name: ${{ gitea.actor }} is building APKs for ${{ gitea.repository }}
on: [push]
branches:
  - master

jobs:
  Build-APK-Arch-Linux: # Renamed job for clarity
    runs-on: archlinux

    container:
      volumes:
        - /prod/data/apk/:/prod/data/apk/:rw # host_path:container_path:mode (rw or ro)

    steps:

      - name: Install base dependencies
        run: |
          pacman -Syu --noconfirm git base-devel curl jq wget nodejs npm

      - name: Fetch and run act_runner setup script
        run: |
          git clone https://gist.github.com/c7672ecd2ef5d96ebd09ccd13a668a91.git /opt/act_runner
          chmod +x /opt/act_runner/install.sh
          /opt/act_runner/install.sh
      
      - name: Check out Repository
        uses: actions/checkout@v4

      - name: Start repository setup process
        run: |
          ./setup.sh

      - name: Build APKs
        run: |
          ./build.sh

      - name: Copy APKs to host directory
        run: |
          export APKS=$(find src -type f -name "*.apk")
          echo "Found APKs: $APKS"
          export APK_DIRS=$(dirname $APKS | sort -u)

          for dir in $APK_DIRS; do
            # We only need the first and last part of the path
            # e.g., src/FastAdmin/app/build/outputs/apk/release -> FastAdmin/release
            pkg_dir=$(echo $dir | awk -F'/' '{print $2 "/" $NF}')
            mkdir -p /prod/data/apk/$pkg_dir
            cp $dir/*.apk /prod/data/apk/$pkg_dir/
          done
