fix(ci): move releases clone out of /tmp and free disk after LFS push
Tests / tests (push) Successful in 2m18s

This commit is contained in:
alvinlollo
2026-09-19 21:34:21 +10:00
parent da0855d341
commit ac59de33c8
+10 -12
View File
@@ -110,7 +110,7 @@ jobs:
GITEA_SCHEME="${GITEA_BASE%%://*}" GITEA_SCHEME="${GITEA_BASE%%://*}"
GITEA_HOST="${GITEA_BASE#*://}" GITEA_HOST="${GITEA_BASE#*://}"
CLONE_URL="${GITEA_SCHEME}://${RELEASES_OWNER}:${GITEA_TOKEN}@${GITEA_HOST}/${RELEASES_REPO}.git" 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 trap 'rm -rf "$REPO_DIR"' EXIT
# Collect the ISOs produced by the build # Collect the ISOs produced by the build
@@ -197,6 +197,9 @@ jobs:
exit 1 exit 1
fi 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) # Verify each LFS object exists server-side (oid == the sha256 we recorded)
for i in "${!zst_files[@]}"; do for i in "${!zst_files[@]}"; do
fname=$(basename "${zst_files[$i]}") fname=$(basename "${zst_files[$i]}")
@@ -234,24 +237,19 @@ jobs:
echo " ✅ Released $TAG_NAME (ID: $RELEASE_ID) with download link + SHA-256 checksums" echo " ✅ Released $TAG_NAME (ID: $RELEASE_ID) with download link + SHA-256 checksums"
# Mirror the release tag on the releases repo for redundancy/discovery # Mirror the release on the releases repo via API (creates tag + release)
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
if ! curl -sf -o /dev/null -H "Authorization: token $GITEA_TOKEN" \ if ! curl -sf -o /dev/null -H "Authorization: token $GITEA_TOKEN" \
"$GITEA_API/repos/$RELEASES_REPO/releases/tags/$TAG_NAME"; then "$GITEA_API/repos/$RELEASES_REPO/releases/tags/$TAG_NAME"; then
curl -sf -X POST \ if ! curl -sf -X POST \
-H "Authorization: token $GITEA_TOKEN" \ -H "Authorization: token $GITEA_TOKEN" \
-H "Content-Type: application/json" \ -H "Content-Type: application/json" \
"$GITEA_API/repos/$RELEASES_REPO/releases" \ "$GITEA_API/repos/$RELEASES_REPO/releases" \
-d "$payload" > /dev/null -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" echo " ✅ Mirrored $TAG_NAME release on $RELEASES_REPO"
fi fi
fi
- name: Keep only latest 3 releases - name: Keep only latest 3 releases
if: success() if: success()