From 6c89ffd9cdeec892e2fa161e51c737bab90534cf Mon Sep 17 00:00:00 2001 From: nevaforget Date: Mon, 20 Apr 2026 11:34:59 +0200 Subject: [PATCH] fix(ci): upload every makepkg artifact, not just the first PKGBUILDs with options=('debug') produce a main + -debug split pair. The previous `ls -t | head -1` only uploaded one, and which one won was mtime-dependent. Loop over all *.pkg.tar.zst and parse pkgname per file (so -debug gets its own registry entry). --- .gitea/workflows/build-and-publish.yaml | 49 +++++++++++++++---------- 1 file changed, 29 insertions(+), 20 deletions(-) diff --git a/.gitea/workflows/build-and-publish.yaml b/.gitea/workflows/build-and-publish.yaml index 05db4e5..1eefbb6 100644 --- a/.gitea/workflows/build-and-publish.yaml +++ b/.gitea/workflows/build-and-publish.yaml @@ -43,34 +43,43 @@ jobs: makepkg -sf --noconfirm - # Find the built package file - PKG_FILE=$(ls -t *.pkg.tar.zst 2>/dev/null | head -1) - if [ -z "$PKG_FILE" ]; then + # makepkg can emit multiple artifacts per build (main + -debug + # split package). Upload each. Arch filename convention: + # ---.pkg.tar.zst; pkgver never + # contains '-', so we can strip from the right. + shopt -s nullglob + PKG_FILES=(*.pkg.tar.zst) + shopt -u nullglob + if [ "${#PKG_FILES[@]}" -eq 0 ]; then echo "ERROR: No package file found for $pkg" cd .. continue fi - # Extract version for delete endpoint - PKG_NAME=$(grep '^pkgname=' PKGBUILD | cut -d= -f2) - PKG_VER=$(grep '^pkgver=' PKGBUILD | cut -d= -f2) - PKG_REL=$(grep '^pkgrel=' PKGBUILD | cut -d= -f2) - PKG_ARCH=$(grep '^arch=' PKGBUILD | sed "s/.*('\(.*\)').*/\1/") - FULL_VER="${PKG_VER}-${PKG_REL}" + for PKG_FILE in "${PKG_FILES[@]}"; do + base="${PKG_FILE%.pkg.tar.zst}" + PKG_ARCH="${base##*-}" + base="${base%-*}" + PKG_REL="${base##*-}" + base="${base%-*}" + PKG_VER="${base##*-}" + PKG_NAME="${base%-*}" + FULL_VER="${PKG_VER}-${PKG_REL}" - echo "==> Uploading $PKG_FILE ($PKG_NAME $FULL_VER $PKG_ARCH)" + echo "==> Uploading $PKG_FILE ($PKG_NAME $FULL_VER $PKG_ARCH)" - # Delete old version if it exists (ignore 404) - curl -s -o /dev/null -X DELETE \ - -H "Authorization: token ${{ secrets.PKG_REGISTRY_TOKEN }}" \ - "https://gitea.moonarch.de/api/packages/nevaforget/arch/moonarch/${PKG_NAME}/${FULL_VER}/${PKG_ARCH}" || true + # Delete old version if it exists (ignore 404) + curl -s -o /dev/null -X DELETE \ + -H "Authorization: token ${{ secrets.PKG_REGISTRY_TOKEN }}" \ + "https://gitea.moonarch.de/api/packages/nevaforget/arch/moonarch/${PKG_NAME}/${FULL_VER}/${PKG_ARCH}" || true - # Upload new version - curl -sf \ - -H "Authorization: token ${{ secrets.PKG_REGISTRY_TOKEN }}" \ - --upload-file "$PKG_FILE" \ - "https://gitea.moonarch.de/api/packages/nevaforget/arch/moonarch" + # Upload new version + curl -sf \ + -H "Authorization: token ${{ secrets.PKG_REGISTRY_TOKEN }}" \ + --upload-file "$PKG_FILE" \ + "https://gitea.moonarch.de/api/packages/nevaforget/arch/moonarch" - echo "==> Published $PKG_NAME $FULL_VER" + echo "==> Published $PKG_NAME $FULL_VER" + done cd .. done