diff --git a/.gitea/workflows/build-iso.yaml b/.gitea/workflows/build-iso.yaml index 25728bc..735e386 100644 --- a/.gitea/workflows/build-iso.yaml +++ b/.gitea/workflows/build-iso.yaml @@ -110,7 +110,7 @@ jobs: GITEA_SCHEME="${GITEA_BASE%%://*}" GITEA_HOST="${GITEA_BASE#*://}" CLONE_URL="${GITEA_SCHEME}://${RELEASES_OWNER}:${GITEA_TOKEN}@${GITEA_HOST}/${RELEASES_REPO}.git" - REPO_DIR=/tmp/alvinarch-releases + REPO_DIR="$PWD/.releases-repo" trap 'rm -rf "$REPO_DIR"' EXIT # Collect the ISOs produced by the build @@ -197,6 +197,9 @@ jobs: exit 1 fi + # Free disk space immediately — the clone + LFS objects are multi-GB + rm -rf "$REPO_DIR" + # Verify each LFS object exists server-side (oid == the sha256 we recorded) for i in "${!zst_files[@]}"; do fname=$(basename "${zst_files[$i]}") @@ -234,23 +237,18 @@ jobs: echo " ✅ Released $TAG_NAME (ID: $RELEASE_ID) with download link + SHA-256 checksums" - # Mirror the release tag on the releases repo for redundancy/discovery - if ! git -C "$REPO_DIR" ls-remote --exit-code origin \ - refs/tags/"$TAG_NAME" >/dev/null 2>&1; then - git -C "$REPO_DIR" tag "$TAG_NAME" - if ! git -C "$REPO_DIR" push --quiet origin "$TAG_NAME" 2>/dev/null; then - echo "❌ Failed to push tag $TAG_NAME to $RELEASES_REPO." >&2 - exit 1 - fi - fi + # Mirror the release on the releases repo via API (creates tag + release) if ! curl -sf -o /dev/null -H "Authorization: token $GITEA_TOKEN" \ "$GITEA_API/repos/$RELEASES_REPO/releases/tags/$TAG_NAME"; then - curl -sf -X POST \ - -H "Authorization: token $GITEA_TOKEN" \ - -H "Content-Type: application/json" \ - "$GITEA_API/repos/$RELEASES_REPO/releases" \ - -d "$payload" > /dev/null - echo " ✅ Mirrored $TAG_NAME release on $RELEASES_REPO" + if ! curl -sf -X POST \ + -H "Authorization: token $GITEA_TOKEN" \ + -H "Content-Type: application/json" \ + "$GITEA_API/repos/$RELEASES_REPO/releases" \ + -d "$payload" > /dev/null; then + echo "⚠️ Failed to mirror release on $RELEASES_REPO (non-fatal)." >&2 + else + echo " ✅ Mirrored $TAG_NAME release on $RELEASES_REPO" + fi fi - name: Keep only latest 3 releases