fix(ci): upload plain ISO directly, skip zstd compression
Tests / tests (push) Successful in 2m22s

Compression was 5.3 GiB -> 5.2 GiB (98.6%) — negligible savings for
the extra build time. Upload the .iso directly as a release asset.
This commit is contained in:
alvinlollo
2026-09-21 19:56:07 +10:00
parent 117b5e97aa
commit c71168371d
+12 -19
View File
@@ -24,12 +24,12 @@ jobs:
set -euo pipefail
mkdir -p /tmp/localrepo
cp localrepo/*.pkg.tar.zst localrepo/local-aur.db* localrepo/local-aur.files* /tmp/localrepo/
sed -i 's|file:///home/alvin/alvinarch/localrepo|file:///tmp/localrepo|' pacman.conf
sed -i 's|file:///home/alvin/AlvinArch/localrepo|file:///tmp/localrepo|' pacman.conf
- name: Install archiso and dependencies
run: |
set -euo pipefail
pacman -Syu --noconfirm --needed archiso jq zstd
pacman -Syu --noconfirm --needed archiso jq
- name: Ensure /dev/stdin exists for mkinitcpio
run: |
@@ -102,15 +102,13 @@ jobs:
exit 1
fi
# Collect the ISOs produced by the build
# Collect the ISOs produced by the build and record SHA-256
isos=(out/*.iso)
if (( ${#isos[@]} == 0 )); then
echo "❌ No ISO found in out/ — nothing to upload, aborting." >&2
exit 1
fi
# Compress each ISO with zstd and record its SHA-256
zst_files=()
sha256sums=()
for iso in "${isos[@]}"; do
fname=$(basename "$iso")
@@ -120,19 +118,15 @@ jobs:
echo "❌ '$iso' is only $size bytes — refusing to upload (not an ISO)." >&2
exit 1
fi
echo "Compressing $fname ($(( size / 1024 / 1024 )) MiB) with zstd..."
zstd -T0 -19 -f "$iso" -o "$iso.zst" --rm
sha=$(sha256sum "$iso.zst" | awk '{print $1}')
echo " ✅ ${fname}.zst: $(( $(stat -c %s "$iso.zst") / 1024 / 1024 )) MiB, sha256=$sha"
zst_files+=("$iso.zst")
sha=$(sha256sum "$iso" | awk '{print $1}')
echo " ✅ $fname: $(( size / 1024 / 1024 )) MiB, sha256=$sha"
sha256sums+=("$sha")
done
# Build the release body with SHA-256 checksums
printf -v body 'Arch Linux live ISO %s\n\nChecksums (SHA-256):\n' "$RELEASE_NAME"
for i in "${!zst_files[@]}"; do
printf -v line -- '- `%s`: sha256 `%s`\n' "$(basename "${zst_files[$i]}")" "${sha256sums[$i]}"
for i in "${!isos[@]}"; do
printf -v line -- '- `%s`: sha256 `%s`\n' "$(basename "${isos[$i]}")" "${sha256sums[$i]}"
body+="$line"
done
@@ -146,14 +140,14 @@ jobs:
-d "$payload" | jq -er '.id')
echo " ✅ Created release $TAG_NAME (ID: $RELEASE_ID)"
# Upload each .zst file as a release asset
for i in "${!zst_files[@]}"; do
fname=$(basename "${zst_files[$i]}")
size=$(stat -c %s "${zst_files[$i]}")
# Upload each ISO as a release asset
for i in "${!isos[@]}"; do
fname=$(basename "${isos[$i]}")
size=$(stat -c %s "${isos[$i]}")
echo "Uploading $fname ($(( size / 1024 / 1024 )) MiB) to release $TAG_NAME..."
curl -sf -X POST \
-H "Authorization: token $GITEA_TOKEN" \
-F "attachment=@${zst_files[$i]}" \
-F "attachment=@${isos[$i]}" \
"$GITEA_API/repos/$REPOSITORY/releases/$RELEASE_ID/assets" | jq -er '.browser_download_url'
echo " ✅ Uploaded $fname"
done
@@ -208,4 +202,3 @@ jobs:
run: |
set -eu
rm -rf "$PWD/out"