You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
## Summary
Fixes silent / partial failure of CI on Windows that started with the
migration from Make to Taskfile.
Cumulative changes in this PR:
- **`Taskfile.yml`**: switch `EMBED_SOURCES` evaluation from `python` →
`python3`. Many systems (stock macOS, modern Linux distros) only ship
`python3`, so `./task test-update` and any other task referencing
`EMBED_SOURCES` failed to evaluate locally. Matches the script's own
shebang and the rest of the file (lines 870, 884 already use `python3`).
- **`tools/task/go.mod`**: bump `github.com/go-task/task/v3` v3.49.1 →
v3.50.0. v3.50.0 includes
[go-task/task#2670](go-task/task#2670) ("fix:
Windows CI test failures and path normalization"), which applies
`filepath.ToSlash` to `ROOT_DIR`, `TASKFILE_DIR`, etc. Without it,
`{{.ROOT_DIR}}/tools/go.mod` on Windows became
`C:\a\cli\cli/tools/go.mod` — backslashes were eaten as escape sequences
by the embedded `mvdan/sh` interpreter, mangling the path so `go tool
-modfile=...` could not find the file.
- **CI workflows + acceptance test helper**: invoke Task via `go tool
-modfile=tools/task/go.mod task <target>` instead of `./task <target>`.
The wrapper depends on a shell (sh/bash/pwsh) and Go's `os/exec` doesn't
use one — this surfaced as `exec: "..\\task": executable file not found
in %PATH%` from `BuildYamlfmt` on Windows. The `./task` wrapper is kept
for human/agent use (Makefile, docs, comments, error-message
instructions) — it's still the convenient and allowlistable entry point.
Affected files: `.github/actions/setup-build-environment/action.yml`,
`.github/workflows/check.yml`, `.github/workflows/push.yml`,
`.github/workflows/python_push.yml`, `acceptance/acceptance_test.go`.
- **`shell: bash` on cross-OS jobs in `push.yml`**: pin the four matrix
jobs that include Windows (`test`, `test-exp-aitools`, `test-exp-ssh`,
`test-pipelines`) to `defaults.run.shell: bash`. PowerShell mangles
`-modfile=tools/task/go.mod` (drops `.mod`); `shell: bash` resolves to
Git Bash on Windows runners and to bash on Linux/macOS.
## Test plan
- [ ] Windows test jobs run real tests (not 6-second no-ops) and produce
gotestsum output
- [ ] Linux/macOS test jobs unchanged
- [ ] `./task test-update` works locally on systems with only `python3`
This pull request and its description were written by Isaac.
run: go tool -modfile=tools/task/go.mod task cover
148
152
149
153
- name: Analyze slow tests
150
-
run: ./task slowest
154
+
run: go tool -modfile=tools/task/go.mod task slowest
151
155
152
156
- name: Check out.test.toml files are up to date
153
-
shell: bash
154
157
run: |
155
158
if ! git diff --exit-code; then
156
159
echo "ERROR: detected changed files in the repository; Most likely you have out.test.toml files that are out of date. Run 'go test ./acceptance -run \"^TestAccept$\" -only-out-test-toml' to update."
0 commit comments