name: Build Image

on:
  push:
    branches:
      - main

concurrency:
  group: build-image-${{ github.repository }}
  cancel-in-progress: true

jobs:
  build-image:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Create Version
        id: version
        run: |
          echo "RELEASE_VERSION=${GITHUB_RUN_NUMBER}${GITHUB_RUN_ATTEMPT}"
          echo "RELEASE_VERSION=${GITHUB_RUN_NUMBER}${GITHUB_RUN_ATTEMPT}" >> "${GITHUB_OUTPUT}"
      #TODO: implement better versioning
      - name: Build or Restore aur
        uses: https://git.fml128.ch/FML128/idkyet-builder-action/aur@main
        with:
          layer_config_file: layers_config.yml
      - name: Build images
        uses: https://git.fml128.ch/FML128/idkyet-builder-action/builder@main
        with:
          layer_config_file: layers_config.yml
          out_dir: ${{ gitea.workspace }}/out
          version: ${{ steps.version.outputs.RELEASE_VERSION }}
          registry_username: ${{ gitea.actor }}
          registry_password: ${{ secrets.PACKET_TOKEN }}
          gpg_sign_key: ${{ secrets.GPG_SIGN_KEY }}
          sb_db_pem: ${{ secrets.SB_DB_PEM }}
          sb_db_key: ${{ secrets.SB_DB_KEY }}
          api_auth_token: ${{ secrets.API_AUTH_TOKEN }}
      - name: Upload Packages
        run: |
          cd ${{ gitea.workspace }}/out
          for f in *;do
            if [[ "$f" == *.img || "$f" == *.efi ]]; then
              echo "Uploading $f"
              du -sh $f
              curl --user "${{ gitea.actor }}:${{ secrets.PACKET_TOKEN }}" \
                --fail --fail-early \
                --upload-file "$f" \
                "https://git.fml128.ch/api/packages/${{ github.repository_owner }}/generic/${GITHUB_REPOSITORY#*/}/${{ steps.version.outputs.RELEASE_VERSION }}/$f"
              rm $f
            fi
          done
      - name: If failure delete packages
        if: failure()
        run: |
          curl --user "${{ gitea.actor }}:${{ secrets.PACKET_TOKEN }}" \
            -X DELETE \
            "https://git.fml128.ch/api/packages/${{ github.repository_owner }}/generic/${GITHUB_REPOSITORY#*/}/${{ steps.version.outputs.RELEASE_VERSION }}"