fix(ci): promote-base-latest re-tag step needs shell: bash (set -o pipefail)

b7197e8 moved the digest-compare into the re-tag step with 'set -euo
pipefail' but no 'shell: bash'; Gitea's default sh (dash) aborts on
-o pipefail, leaving base-latest un-promoted on the v1.2.4 release
(run 418). Same footgun as ed49b8d. Consumer tags unaffected (they
FROM base-<hash>, not base-latest).
This commit is contained in:
pi
2026-07-01 17:57:13 +02:00
parent 3cdc2069db
commit b33e9dc592
2 changed files with 23 additions and 0 deletions
+7
View File
@@ -600,6 +600,13 @@ jobs:
-u ${{ vars.DOCKERHUB_USERNAME }} \
-p "${{ secrets.DOCKERHUB_TOKEN }}"
- name: Re-tag base-<hash> as base-latest (only if stale)
# shell: bash is REQUIRED — Gitea Actions' default step shell is
# `sh -e {0}` (dash), which rejects `set -o pipefail` with
# "Illegal option -o pipefail" and aborts the step before the
# crane digest-compare runs, leaving base-latest un-promoted.
# Same footgun as ed49b8d (resolve-versions). Regression shipped
# in b7197e8, caught on the v1.2.4 release (run 418).
shell: bash
env:
BASE_HASH_REF: ${{ env.IMAGE }}:${{ needs.base-decide.outputs.base_tag }}
BASE_LATEST_REF: ${{ env.IMAGE }}:base-latest
+16
View File
@@ -11,6 +11,22 @@ Pre-v1.0.0 tags followed the pi npm version (`v{pi_version}[letter]`).
---
## Unreleased
### Fixed (CI)
- **`promote-base-latest` now sets `shell: bash` on the base-latest re-tag
step.** The `b7197e8` fix (v1.2.4) moved the digest-compare into that step
with `set -euo pipefail`, but Gitea Actions' default step shell is `sh`
(dash), which rejects `-o pipefail` (`Illegal option -o pipefail`) and aborts
the step before the `crane copy` runs. On the v1.2.4 release (run 418) this
left `base-latest` un-promoted, still pointing at the v1.2.3 base — the four
consumer tags (`v1.2.4`, `latest`, `v1.2.4-studio`, `latest-studio`) were
unaffected because they `FROM` the exact `base-<hash>`, not `base-latest`.
Same footgun as `ed49b8d` (`resolve-versions needs shell: bash`).
---
## v1.2.4 — 2026-06-29
Patch release. Headline: **pi `0.80.2` → `0.80.3`** (npm `latest`). Also ships a