@@ -131,6 +131,10 @@ bdd-domain:
131131 echo " Exit code: $$ exit_code" ; \
132132 exit $$ exit_code
133133
134+ # Use latest golangci-lint so local and CI (.github/workflows/go-ci.yml) stay in sync.
135+ GOLANGCI_LINT_VERSION ?= latest
136+ GOLANGCI_LINT := go run github.com/golangci/golangci-lint/v2/cmd/golangci-lint@$(GOLANGCI_LINT_VERSION )
137+
134138lint :
135139 @echo " Checking code formatting..."
136140 @if [ " $$ (gofmt -s -l . | wc -l)" -gt 0 ]; then \
@@ -142,8 +146,8 @@ lint:
142146 @echo " Running go vet..."
143147 @go vet ./...
144148 @echo " "
145- @echo " Running golangci-lint..."
146- @golangci-lint run ./...
149+ @echo " Running golangci-lint $( GOLANGCI_LINT_VERSION ) ..."
150+ @$( GOLANGCI_LINT ) run ./...
147151
148152# Go signature validation - validates Go signatures in implementation against tech specs
149153# NOTE: This target must be kept in sync with .github/workflows/docs-check.yml.
@@ -249,19 +253,19 @@ ci:
249253 GOCACHE=" $$ CACHE_DIR" go vet ./...; \
250254 fi
251255 @echo " "
252- @echo " 6. Running golangci-lint..."
256+ @echo " 6. Running golangci-lint $( GOLANGCI_LINT_VERSION ) ..."
253257 @if ( [ -w " $( HOME) /.cache/go-build" ] 2> /dev/null && touch " $( HOME) /.cache/go-build/.write-test" 2> /dev/null && rm -f " $( HOME) /.cache/go-build/.write-test" ) || [ -z " $( HOME) " ]; then \
254- golangci-lint run ./...; \
255- golangci-lint run --build-tags=bdd ./...; \
258+ $( GOLANGCI_LINT ) run ./...; \
259+ $( GOLANGCI_LINT ) run --build-tags=bdd ./...; \
256260 else \
257261 CACHE_DIR=" $$ (cd ../.. && pwd)/tmp/go-cache" ; \
258262 mkdir -p " $$ CACHE_DIR" ; \
259- GOCACHE=" $$ CACHE_DIR" golangci-lint run ./... || { \
263+ GOCACHE=" $$ CACHE_DIR" $( GOLANGCI_LINT ) run ./... || { \
260264 echo " Error: golangci-lint failed. This may be due to Go module cache permissions." ; \
261265 echo " Try running 'go mod tidy' or check Go module cache permissions." ; \
262266 exit 1; \
263267 }; \
264- GOCACHE=" $$ CACHE_DIR" golangci-lint run --build-tags=bdd ./... || { \
268+ GOCACHE=" $$ CACHE_DIR" $( GOLANGCI_LINT ) run --build-tags=bdd ./... || { \
265269 echo " Error: golangci-lint (BDD) failed. This may be due to Go module cache permissions." ; \
266270 echo " Try running 'go mod tidy' or check Go module cache permissions." ; \
267271 exit 1; \
0 commit comments