From 84f4669bfd864d28f4945520f85df52714dc376f Mon Sep 17 00:00:00 2001 From: Rihards Gailums Date: Sat, 23 May 2026 18:19:02 +0000 Subject: [PATCH] ci: fix release-notes step SIGPIPE under set -o pipefail MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The v0.1.0 release pipeline succeeded through all 21 build/sign/verify steps but failed at step #22 ("Generate release notes"), skipping step #23 ("Create GitHub Release") as a result. The signed images were pushed to GHCR and release.json was generated and signed correctly; the only missing artifact is the GitHub Release page. Root cause: `git log ... | head -200` under `set -euo pipefail`. When `head -200` closes its stdin after the 200th line, `git log` gets SIGPIPE and exits 141. `pipefail` makes the pipeline inherit that exit code; `set -e` propagates it as script failure. This only manifests on the FIRST release for a fork: - PREV_TAG resolves to empty (no prior semver tag), so RANGE is just the current tag (e.g. "v0.1.0") - `git log v0.1.0` emits one line per commit in the entire branch history (271+ for ProcessGit's Gitea-derived tree) - head -200 truncates → SIGPIPE → step fails On every subsequent release, PREV_TAG is set and RANGE becomes "vX.Y.Z..vA.B.C", which yields a short log that head never needs to truncate. Fix: cap at the source via `git log -n 200 ...` and drop the `| head -200` pipe entirely. Same output, no SIGPIPE risk, no need to relax pipefail for this block. After this lands, the recovery is: - Delete the v0.1.0 ref (the failed run's tag) - Re-create v0.1.0 against the new main HEAD - Workflow re-runs; image build hits the warm GHA cache from this run (~30s instead of ~10min); release.json regenerates; Create-Release step now succeeds. The previously-pushed signed images on GHCR remain valid and verifiable — this fix only addresses the GitHub Release page creation. Co-authored-by: Claude --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index eceec68..f160538 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -360,7 +360,7 @@ jobs: echo "" echo "${COMPARE_LINE}" echo "" - git log --pretty=format:"- %s (%h) — @%an" "${RANGE}" | head -200 + git log -n 200 --pretty=format:"- %s (%h) — @%an" "${RANGE}" echo "" } > release-notes.md cat release-notes.md