From 1b2ac2d88a96ac4b80681163b0158035aad1260d Mon Sep 17 00:00:00 2001 From: Simon Koudijs Date: Mon, 27 Jul 2026 18:20:04 +0000 Subject: [PATCH] fix(release): give the analyzer job the bash it was written for MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The publish-analyzer job declares `container:`, and a container job's default shell is `sh`, not the `bash` a runner-hosted job gets. Its build step opens with `set -euo pipefail`, which dash rejects: the 0.40.0 release died on that first line with "Illegal option -o pipefail", 59 seconds in, having compiled nothing. The job is gated on `release_created`, so it had never once run before that release — cancelled in the run that added it, skipped in the next. Its first execution was also its first failure, and it fails every time, not intermittently. Declaring the shell for the whole job rather than the one broken step keeps a later step from silently inheriting dash again. publish-helm is the other container job and carries the same trap, but it uses no bash-only syntax, so it stays untouched here. Co-Authored-By: Claude Opus 5 (1M context) --- .github/workflows/release.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a6cd4c76..101a1725 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -412,6 +412,13 @@ jobs: credentials: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} + # A container job defaults to `sh`, not the `bash` a runner-hosted job gets, and dash + # rejects `set -o pipefail` outright: the build step below died on its own first line + # with "Illegal option -o pipefail", before compiling anything. Declaring the shell for + # the whole job keeps a later step from silently inheriting dash again. + defaults: + run: + shell: bash steps: - name: Checkout code uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1