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.