CI has been failing on every run because go.mod declared go 1.25.6. Since GOTOOLCHAIN=auto is the default, every go invocation on the CI runner auto-downloaded Go 1.25.6 from github.com/actions/go-versions. That particular pre-release build is missing the covdata tool, so go test -race -coverprofile=coverage.out ./... exited non-zero on the cmd/ packages (no test files) with:
# github.com/hits/ExploreDNS/cmd/exploredns
go: no such tool "covdata"
All actual tests passed, but the non-zero exit code failed the CI step.
Fix
Lower the go directive in go.mod from 1.25.6 to 1.24.0 (the minimum version actually required by transitive dependencies, confirmed by go mod tidy)
Set go-version: 1.24 in setup-go to match
Add GOTOOLCHAIN=local to every go command in ci.yml to prevent any future auto-download regardless of go.mod changes
Verification
GOTOOLCHAIN=local go vet ./... # ✓
GOTOOLCHAIN=local go test -race ./... # ✓ all packages pass
GOTOOLCHAIN=local go build -v ./... # ✓
## Problem
CI has been failing on every run because `go.mod` declared `go 1.25.6`. Since `GOTOOLCHAIN=auto` is the default, every `go` invocation on the CI runner auto-downloaded Go 1.25.6 from github.com/actions/go-versions. That particular pre-release build is missing the `covdata` tool, so `go test -race -coverprofile=coverage.out ./...` exited non-zero on the `cmd/` packages (no test files) with:
```
# github.com/hits/ExploreDNS/cmd/exploredns
go: no such tool "covdata"
```
All actual tests passed, but the non-zero exit code failed the CI step.
## Fix
- Lower the `go` directive in `go.mod` from `1.25.6` to `1.24.0` (the minimum version actually required by transitive dependencies, confirmed by `go mod tidy`)
- Set `go-version: 1.24` in `setup-go` to match
- Add `GOTOOLCHAIN=local` to every `go` command in `ci.yml` to prevent any future auto-download regardless of `go.mod` changes
## Verification
```
GOTOOLCHAIN=local go vet ./... # ✓
GOTOOLCHAIN=local go test -race ./... # ✓ all packages pass
GOTOOLCHAIN=local go build -v ./... # ✓
```
The CI was consistently failing because go.mod declared 'go 1.25.6',
which triggered Go's GOTOOLCHAIN=auto mechanism to auto-download Go
1.25.6 on the CI runner. That pre-release build lacks the 'covdata'
tool, causing 'go test -race -coverprofile=coverage.out ./...' to exit
non-zero on cmd/ packages (which have no test files), even though all
actual tests passed.
Fix:
- Lower go directive from 1.25.6 to 1.24.0 (minimum required by deps)
- Set go-version: '1.24' in setup-go to match
- Add GOTOOLCHAIN=local to every go command in ci.yml to prevent any
further auto-download regardless of future go.mod changes
All tests pass locally with GOTOOLCHAIN=local.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: multica-agent <github@multica.ai>
gary
merged commit 1f23f482c1 into main2026-06-10 10:14:21 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Problem
CI has been failing on every run because
go.moddeclaredgo 1.25.6. SinceGOTOOLCHAIN=autois the default, everygoinvocation on the CI runner auto-downloaded Go 1.25.6 from github.com/actions/go-versions. That particular pre-release build is missing thecovdatatool, sogo test -race -coverprofile=coverage.out ./...exited non-zero on thecmd/packages (no test files) with:All actual tests passed, but the non-zero exit code failed the CI step.
Fix
godirective ingo.modfrom1.25.6to1.24.0(the minimum version actually required by transitive dependencies, confirmed bygo mod tidy)go-version: 1.24insetup-goto matchGOTOOLCHAIN=localto everygocommand inci.ymlto prevent any future auto-download regardless ofgo.modchangesVerification