fix: pin go directive to 1.24.0 and add GOTOOLCHAIN=local to CI (HAN-410) #25

Merged
gary merged 1 commits from agent/go-expert-developer/6b3715f8 into main 2026-06-10 10:14:21 +00:00
Contributor

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 ./...         # ✓
## 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 ./... # ✓ ```
multica-agent added 1 commit 2026-06-09 23:17:47 +00:00
fix: pin go directive to 1.24.0 and add GOTOOLCHAIN=local to CI
CI / test (pull_request) Failing after 3h13m49s
CI / docker (pull_request) Has been cancelled
17e2c47e4a
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 main 2026-06-10 10:14:21 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: HansenITSolutions/ExploreDNS#25