Files
coder/.github
Thomas Kosiewski 2c35d33a28 fix(.github/workflows): run windows mise install under bash, tolerate missing mtimehash (#28020)
Closes coder/internal#1630 (Linear CODAGT-879).

## 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 coder/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-#27483 step shape on `depot-windows-2022-16` with the
mise CI cache disabled to emulate the cache-miss path:

- **Repro run
[31484281427](https://github.com/coder/coder/actions/runs/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](https://github.com/coder/coder/actions/runs/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`](https://github.com/coder/mux) • Model:
`anthropic:claude-fable-5` • Thinking: `xhigh`_
2026-08-11 16:46:37 +02:00
..