From 655ec31ef92c7c19b95bb48addf219cdbeecbc5b Mon Sep 17 00:00:00 2001 From: enricobuehler Date: Tue, 7 Jul 2026 17:01:02 +0000 Subject: [PATCH] ci(android): attach the built APK to the workflow run MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The APK was only reachable via the generic registry (or attached to a Gitea Release on a vX.Y.Z tag) — a main-push canary or a PR/dispatch run surfaced no downloadable APK on the run page itself. Add an upload-artifact step (v3, per Gitea's GHES-identifying artifact backend, like apple.yml) that grabs whichever APKs were built — the signed universal release APK on a main/tag push, else the debug APK — so any run is a one-click sideload download. Co-Authored-By: Claude Opus 4.8 --- .gitea/workflows/android.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/.gitea/workflows/android.yml b/.gitea/workflows/android.yml index 3e8eacdb..bb1f2746 100644 --- a/.gitea/workflows/android.yml +++ b/.gitea/workflows/android.yml @@ -103,6 +103,23 @@ jobs: # AAB for Play; a universal APK (all ABIs) for direct sideload/testing — same upload key. ./gradlew :app:bundleRelease :app:assembleRelease --stacktrace + # Attach the built APK to the workflow run so it's a one-click sideload download straight from the + # run page (no need to know the generic-registry URL) — on EVERY trigger, incl. a PR or a + # workflow_dispatch. The debug APK is built on every run; the signed universal release APK exists + # only on a main/tag push (its build step above is push-gated), so grab whichever were produced. + - name: Attach APK(s) to the workflow run + if: always() + # v3, not v4: Gitea's artifact backend identifies as GHES, which upload-artifact@v4 refuses + # (same reason as apple.yml / *-screenshots.yml). Download is a zip of the matched APK(s). + uses: actions/upload-artifact@v3 + with: + name: punktfunk-android-apk + path: | + clients/android/app/build/outputs/apk/release/*.apk + clients/android/app/build/outputs/apk/debug/*.apk + if-no-files-found: warn + retention-days: 30 + # Publish BEFORE the Play upload so artifacts land even while the Play step is still failing. # Generic registry is public for reads — matches windows-msix.yml / deb.yml (REGISTRY_TOKEN, user enricobuehler). # main = canary store + `canary/` sideload alias; a `vX.Y.Z` tag = `latest/` alias + attached