Thanks to visit codestin.com
Credit goes to github.com

Skip to content

fix(.github/workflows): run windows mise install under bash, tolerate missing mtimehash - #28020

Merged
ThomasK33 merged 3 commits into
mainfrom
windows-test-7eec
Aug 11, 2026
Merged

ThomasK33 merged 3 commits into
mainfrom
windows-test-7eec

Conversation

@ThomasK33

@ThomasK33 ThomasK33 commented Aug 11, 2026

Copy link
Copy Markdown
Member

Closes coder/internal#1630 (Linear coder/internal#1630).

Problem

test-go-pg (windows-2022) flaked with mtimehash: command not found (exit 127) before any tests ran. The Install Go mise tools step ran retry.sh (a bash script) without shell: 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 the ci.yaml test-go-pg step, but two gaps remained.

Changes

  • nightly-gauntlet.yaml: add shell: bash to its Install Go mise tools step, which had the identical unfixed defect on the windows-2022 matrix entry (installs gotestsum the same way).
  • ci.yaml: the Normalize File and Directory Timestamps step now warns and skips instead of failing the job when mtimehash is 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-16 with the mise CI cache disabled to emulate the cache-miss path:

  • Repro run 31484281427: the default-shell install step reported success under pwsh.EXE with no install output; the subsequent bash step failed with mtimehash: command not found, pipeline exit code 127 — exactly matching the flake evidence.
  • Verification run 31484905616 (all green): with shell: bash, mise builds mtimehash and the exact production find . -type f ! -path ./.git/\*\* | mtimehash command runs cleanly.

Validation

  • actionlint and make lint/actions/zizmor pass on the modified workflows.
  • Pre-commit hooks green on all commits.

Generated with mux • Model: anthropic:claude-fable-5 • Thinking: xhigh

… 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 ThomasK33 added the experimental Changes that might not necessarily be merged, until its approved to proceed with. label Aug 11, 2026
@ThomasK33 ThomasK33 removed the experimental Changes that might not necessarily be merged, until its approved to proceed with. label Aug 11, 2026
@ThomasK33
ThomasK33 marked this pull request as ready for review August 11, 2026 13:57
@ThomasK33
ThomasK33 merged commit 2c35d33 into main Aug 11, 2026
48 checks passed
@ThomasK33
ThomasK33 deleted the windows-test-7eec branch August 11, 2026 14:46
@github-actions github-actions Bot locked and limited conversation to collaborators Aug 11, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

flake: Windows test-go-pg infrastructure issue - mtimehash missing after mise cache miss

2 participants