fix(.github/workflows): run windows mise install under bash, tolerate missing mtimehash - #28020
Merged
Merged
Conversation
… missing mtimehash The nightly-gauntlet Install Go mise tools step ran retry.sh (a bash script) under the default PowerShell shell on its windows-2022 matrix entry. The step reports success without running the install, so gotestsum is silently missing whenever the mise cache misses. This is the same defect fixed for ci.yaml test-go-pg in #27483. Also make the ci.yaml timestamp normalization step skip mtimehash with a warning instead of failing the job when the binary is missing, since mtimehash only optimizes Go test cache hits (coder/internal#1630).
ThomasK33
marked this pull request as ready for review
August 11, 2026 13:57
ibetitsmike
approved these changes
Aug 11, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes coder/internal#1630 (Linear coder/internal#1630).
Problem
test-go-pg (windows-2022)flaked withmtimehash: command not found(exit 127) before any tests ran. TheInstall Go mise toolsstep ranretry.sh(a bash script) withoutshell: bash, so Windows executed it under the default PowerShell shell, which reports success without actually running the install. A warm mise tool cache masks the defect, making it intermittent. #27483 fixed theci.yamltest-go-pgstep, but two gaps remained.Changes
nightly-gauntlet.yaml: addshell: bashto itsInstall Go mise toolsstep, which had the identical unfixed defect on thewindows-2022matrix entry (installsgotestsumthe same way).ci.yaml: theNormalize File and Directory Timestampsstep now warns and skips instead of failing the job whenmtimehashis missing, since it only optimizes Go test cache hits. This is the follow-up hardening suggested in flake: Windows test-go-pg infrastructure issue - mtimehash missing after mise cache miss internal#1630 so a cache helper can never again prevent the tests from running.Reproduction and verification on a real Windows runner
A temporary workflow on this branch (removed in the final commit) recreated the pre-coder/coder#27483 step shape on
depot-windows-2022-16with the mise CI cache disabled to emulate the cache-miss path:successunderpwsh.EXEwith no install output; the subsequent bash step failed withmtimehash: command not found, pipeline exit code 127 — exactly matching the flake evidence.shell: bash, mise builds mtimehash and the exact productionfind . -type f ! -path ./.git/\*\* | mtimehashcommand runs cleanly.Validation
actionlintandmake lint/actions/zizmorpass on the modified workflows.Generated with
mux• Model:anthropic:claude-fable-5• Thinking:xhigh