@@ -93,12 +93,29 @@ lint-fix: golangci-lint ## Run golangci-lint linter and perform fixes
9393lint-config : golangci-lint # # Verify golangci-lint linter configuration
9494 $(GOLANGCI_LINT ) config verify
9595
96- .PHONY : ask-dex
97- ask-dex : # # Ask Dex a question about the project
98- cd hack/ask-dex && bun ask-dex.js $(filter-out $@ ,$(MAKECMDGOALS ) )
99-
96+ .PHONY : mocks
97+ mocks : mockgen # # Generate all mocks using mockgen
98+ @echo " Generating mocks..."
99+ $(MOCKGEN ) -source=internal/humanlayer/hlclient.go -destination=internal/humanlayer/mocks/mock_hlclient.go -package=mocks
100+ $(MOCKGEN ) -source=internal/llmclient/llm_client.go -destination=internal/llmclient/mocks/mock_llm_client.go -package=mocks
101+ $(MOCKGEN ) -source=internal/mcpmanager/mcpmanager.go -destination=internal/mcpmanager/mocks/mock_mcpmanager.go -package=mocks
102+ @echo " Mock generation complete"
103+
104+ .PHONY : clean-mocks
105+ clean-mocks : # # Remove all generated mock files
106+ @echo " Cleaning mocks..."
107+ rm -rf internal/humanlayer/mocks/
108+ rm -rf internal/llmclient/mocks/
109+ rm -rf internal/mcpmanager/mocks/
110+ @echo " Mock cleanup complete"
100111# #@ Build
101112
113+ .PHONY : deps
114+ deps : # # Install dependencies
115+ go mod tidy
116+ go mod download
117+ go mod verify
118+
102119.PHONY : build
103120build : manifests generate fmt vet # # Build manager binary.
104121 go build -o bin/manager cmd/main.go
@@ -192,10 +209,11 @@ deploy: manifests docker-build kustomize ## Deploy controller to the K8s cluster
192209 cd config/manager && $(KUSTOMIZE ) edit set image controller=${IMG}
193210 $(KUSTOMIZE ) build config/default | $(KUBECTL ) apply -f -
194211
212+ namespace ?= default
195213.PHONY : deploy-local-kind
196214deploy-local-kind : manifests docker-build docker-load-kind kustomize # # Deploy controller to the K8s cluster specified in ~/.kube/config.
197215 cd config/localdev && $(KUSTOMIZE ) edit set image controller=${IMG}
198- $(KUSTOMIZE ) build config/localdev | $(KUBECTL ) apply -f -
216+ $(KUSTOMIZE ) build config/localdev | $(KUBECTL ) apply -f - --namespace= $( namespace )
199217
200218.PHONY : deploy-samples
201219deploy-samples : kustomize # # Deploy samples to the K8s cluster specified in ~/.kube/config.
@@ -232,6 +250,7 @@ KUSTOMIZE ?= $(LOCALBIN)/kustomize
232250CONTROLLER_GEN ?= $(LOCALBIN ) /controller-gen
233251ENVTEST ?= $(LOCALBIN ) /setup-envtest
234252GOLANGCI_LINT = $(LOCALBIN ) /golangci-lint
253+ MOCKGEN = $(LOCALBIN ) /mockgen
235254
236255# # Tool Versions
237256KUSTOMIZE_VERSION ?= v5.5.0
@@ -241,6 +260,7 @@ ENVTEST_VERSION ?= $(shell go list -m -f "{{ .Version }}" sigs.k8s.io/controller
241260# ENVTEST_K8S_VERSION is the version of Kubernetes to use for setting up ENVTEST binaries (i.e. 1.31)
242261ENVTEST_K8S_VERSION ?= $(shell go list -m -f "{{ .Version }}" k8s.io/api | awk -F'[v.]' '{printf "1.% d", $$3}')
243262GOLANGCI_LINT_VERSION ?= v1.63.4
263+ MOCKGEN_VERSION ?= v0.5.0
244264
245265.PHONY : kustomize
246266kustomize : $(KUSTOMIZE ) # # Download kustomize locally if necessary.
@@ -270,6 +290,11 @@ golangci-lint: $(GOLANGCI_LINT) ## Download golangci-lint locally if necessary.
270290$(GOLANGCI_LINT ) : $(LOCALBIN )
271291 $(call go-install-tool,$(GOLANGCI_LINT ) ,github.com/golangci/golangci-lint/cmd/golangci-lint,$(GOLANGCI_LINT_VERSION ) )
272292
293+ .PHONY : mockgen
294+ mockgen : $(MOCKGEN ) # # Download mockgen locally if necessary.
295+ $(MOCKGEN ) : $(LOCALBIN )
296+ $(call go-install-tool,$(MOCKGEN ) ,go.uber.org/mock/mockgen,$(MOCKGEN_VERSION ) )
297+
273298# go-install-tool will 'go install' any package with custom target and name of binary, if it doesn't exist
274299# $1 - target path with name of binary
275300# $2 - package url which can be installed
@@ -282,6 +307,7 @@ echo "Downloading $${package}" ;\
282307rm -f $(1 ) || true ;\
283308GOBIN=$(LOCALBIN ) go install $${package} ;\
284309mv $(1 ) $(1 ) -$(3 ) ;\
310+ chmod 755 $(1 ) -$(3 ) ;\
285311} ;\
286312ln -sf $(1 ) -$(3 ) $(1 )
287313endef
0 commit comments