From c71168371da93a27db04ac6c2e55a192d134fb65 Mon Sep 17 00:00:00 2001 From: alvinlollo Date: Mon, 21 Sep 2026 19:56:07 +1000 Subject: [PATCH] fix(ci): upload plain ISO directly, skip zstd compression MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- .gitea/workflows/build-iso.yaml | 31 ++++++++++++------------------- 1 file changed, 12 insertions(+), 19 deletions(-) diff --git a/.gitea/workflows/build-iso.yaml b/.gitea/workflows/build-iso.yaml index 6d583ed..3a3f299 100644 --- a/.gitea/workflows/build-iso.yaml +++ b/.gitea/workflows/build-iso.yaml @@ -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" -