From 1ddd331f5849a42546c9c30c8c9219d7f425a295 Mon Sep 17 00:00:00 2001 From: ZDDC Date: Sun, 3 May 2026 21:48:37 -0500 Subject: [PATCH] =?UTF-8?q?fix(ci):=20notify-chart-dev=20=E2=80=94=20drop?= =?UTF-8?q?=20default=20pipefail,=20set=20-eu=20after=20early=20echos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Forgejo runner v12.9.0 was killing the gate echo with SIGPIPE (exit 141) when the script ran under the runner's default `bash -e -o pipefail {0}` shell. Override with `shell: bash {0}` (no -e, no pipefail) so the early stable-tag check + log echos don't get tripped by phantom pipe failures, then re-enable `set -eu` for the actual bump logic where strictness matters. --- .forgejo/workflows/notify-chart-dev.yml | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/.forgejo/workflows/notify-chart-dev.yml b/.forgejo/workflows/notify-chart-dev.yml index 499ef83..427b3ad 100644 --- a/.forgejo/workflows/notify-chart-dev.yml +++ b/.forgejo/workflows/notify-chart-dev.yml @@ -40,16 +40,17 @@ jobs: fetch-depth: 0 - name: Auto-bump chart develop appVersion + push + # Explicit shell flags — the Forgejo runner's default + # `bash -e -o pipefail {0}` was reporting our step as exit + # 141 (SIGPIPE) immediately after the first echo, even with + # no pipelines in the script. Switching to plain `bash {0}` + # (no -e, no pipefail) sidesteps that entirely. We use + # explicit `|| { ... ; exit 1; }` blocks for failure paths + # so error semantics are preserved. + shell: bash {0} run: | - set -eu - # Self-skip if HEAD has a stable tag — the prod workflow - # owns the chart bump in that case. Inlined here (rather - # than as a separate gate step) because Forgejo runner - # v12.9.0 was exiting our gate step with 141 immediately - # after a clean echo + GITHUB_OUTPUT write. Folding the - # check into the bump step's strict-mode shell avoids the - # cross-step boundary entirely. + # owns the chart bump in that case. STABLE_TAGS=$(git tag --points-at HEAD --list 'zddc-server-v*') if [ -n "$STABLE_TAGS" ]; then echo "HEAD has stable tag ($STABLE_TAGS) — stable workflow handles chart bump; skipping dev notify" @@ -62,6 +63,11 @@ jobs: exit 1 fi + # Re-enable strict-mode for the rest of the script — failures + # in clone/sed/push must abort. The leading "no stable tag" + # echo is what tripped the runner; from here on it's safe. + set -eu + # Compose a beta version string that's unique per ZDDC commit. # Uses the next-stable target (max of latest tag + 1, mirrors # ./build's _coordinated_next_stable) and the short SHA.