From 187f4ec588b8d34efc753652bb9cf292a4187de8 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 4 May 2026 10:25:46 +0000 Subject: [PATCH] publish: use bash for the recipe so set -eo pipefail works The `set -eo pipefail` I added in PR #15 broke `make publish` on CI: Make uses /bin/sh (dash on Ubuntu), and dash rejects `pipefail` with "Illegal option -o pipefail" before any other command runs. Step 11 (Build, push, sign) failed at line 1 of the recipe. Fix with a target-specific `SHELL := /bin/bash` so only this recipe runs under bash; the rest of the Makefile stays on /bin/sh. https://claude.ai/code/session_01XkNKhsMjCMg4HMTzf3ZZYC --- Makefile | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Makefile b/Makefile index 723a023..7a54ecf 100644 --- a/Makefile +++ b/Makefile @@ -189,6 +189,12 @@ $(FW_BIN): build # `| grep | head | cut` pipeline and silently produce an empty DIGEST # (we'd catch it with the test below, but pipefail makes the original # error message visible). +# +# Target-specific SHELL := bash because `pipefail` isn't a POSIX +# `set -o` option — the default `/bin/sh` on Ubuntu (dash) rejects it +# with "Illegal option -o pipefail" before any other command runs. We +# only need bash for this one recipe; everything else stays on /bin/sh. +publish: SHELL := /bin/bash publish: $(FW_BIN) check-gh-env @set -eo pipefail; \ . ./gh.env; \