Skip to content

fix(rust-ci): run test-extra under bash so env values survive on Windows#90

Merged
Jaro-c merged 1 commit into
mainfrom
ci/rust-ci-bash-on-windows
Jul 15, 2026
Merged

fix(rust-ci): run test-extra under bash so env values survive on Windows#90
Jaro-c merged 1 commit into
mainfrom
ci/rust-ci-bash-on-windows

Conversation

@Jaro-c

@Jaro-c Jaro-c commented Jul 15, 2026

Copy link
Copy Markdown
Member

v1.9.0 is broken for any consumer that tests on Windows. This is the fix-forward.

v1.9.0 replaced the literal stable with "$TOOLCHAIN" read from env:. On a Windows runner the default shell is PowerShell, where $TOOLCHAIN reads a PowerShell variable rather than the environment — so it expanded to the empty string:

error: invalid value '' for '[TOOLCHAIN]...': invalid toolchain name: ''

The literal never depended on the shell, so the bug arrived with the pin. test-extra is the only job that can land on a non-Linux runner (it's the one driven by extra-test-os); the other seven are ubuntu-latest, where bash is already the default — audited, not assumed.

Pins the shell for that job, the same way podup's release.yml already does for its cross-OS matrix, for exactly this reason.

Caught by podup#1013, the pin-adoption PR — which is what that PR was for. The lesson is the ordering, though: I cut the v1.9.0 release before any consumer had proven it. The reusable's SHA exists on main before the tag does, so the adoption PR could and should have run first. Doing that from here on.

v1.9.0 replaced the literal `stable` with "$TOOLCHAIN" read from env:.
On a Windows runner the default shell is PowerShell, where $TOOLCHAIN
reads a PowerShell variable rather than the environment — so it expanded
to the empty string and rustup failed:

  error: invalid value '' for '[TOOLCHAIN]...': invalid toolchain name: ''

The literal never depended on the shell, so the bug arrived with the pin.
test-extra is the only job that can land on a non-Linux runner (it is the
one driven by extra-test-os); every other job is ubuntu-latest, where the
default shell is already bash.

Pin the shell for that job, as release.yml's cross-OS matrix in podup
already does for the same reason. Caught by podup#1013, the pin-adoption
PR — which is exactly what that PR was for.

v1.9.0 is unusable for any consumer testing on Windows; this is the
fix-forward.

Signed-off-by: Jaro-c <75870284+Jaro-c@users.noreply.github.com>
@Jaro-c
Jaro-c merged commit 505d78d into main Jul 15, 2026
4 checks passed
@Jaro-c
Jaro-c deleted the ci/rust-ci-bash-on-windows branch July 15, 2026 06:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant