11PROJECT_DIR := $(shell dirname $(abspath $(lastword $(MAKEFILE_LIST ) ) ) )
2- CHARTSNAP_VERSION ?= v0.3.1
2+ TOOLS_VERSIONS_FILE = .tools_versions.yaml
33
4- .PHONY : _download_tool
5- _download_tool :
6- (cd third_party && go mod tidy && \
7- GOBIN= $( PROJECT_DIR ) /bin go generate -tags=third_party ./ $( TOOL ) .go )
4+ MISE := $( shell which mise)
5+ .PHONY : mise
6+ mise :
7+ @mise -V > /dev/null || (echo " mise - https://github.com/jdx/mise - not found. Please install it. " && exit 1 )
88
9- .PHONY : tools
10- tools : kube-linter chartsnap
9+ export MISE_DATA_DIR = $(PROJECT_DIR ) /bin/
10+
11+ # NOTE: mise targets use -q to silence the output.
12+ # Users can use MISE_VERBOSE=1 MISE_DEBUG=1 to get more verbose output.
13+
14+ .PHONY : mise-plugin-install
15+ mise-plugin-install : mise
16+ @$(MISE ) plugin install --yes -q $(DEP ) $(URL )
17+
18+ .PHONY : mise-install
19+ mise-install : mise
20+ @$(MISE ) install -q $(DEP_VER )
1121
12- KUBE_LINTER = $(PROJECT_DIR ) /bin/kube-linter
22+ KUBE_LINTER_VERSION = $(shell yq -ojson -r '.kube-linter' < $(TOOLS_VERSIONS_FILE ) )
23+ KUBE_LINTER = $(PROJECT_DIR ) /bin/installs/kube-linter/v$(KUBE_LINTER_VERSION ) /bin/kube-linter
1324.PHONY : kube-linter
14- kube-linter :
15- @$(MAKE ) _download_tool TOOL=kube-linter
25+ kube-linter : mise
26+ @$(MAKE ) mise-plugin-install DEP=kube-linter
27+ @$(MAKE ) mise-install DEP_VER=kube-linter@v$(KUBE_LINTER_VERSION )
1628
29+ CHARTSNAP_VERSION = $(shell yq -ojson -r '.chartsnap' < $(TOOLS_VERSIONS_FILE ) )
1730.PHONY : chartsnap
1831chartsnap :
19- ./scripts/install-chartsnap.sh
32+ CHARTSNAP_VERSION=${CHARTSNAP_VERSION} ./scripts/install-chartsnap.sh
33+
34+ SHELLCHECK_VERSION = $(shell yq -ojson -r '.shellcheck' < $(TOOLS_VERSIONS_FILE ) )
35+ SHELLCHECK = $(PROJECT_DIR ) /bin/installs/shellcheck/$(SHELLCHECK_VERSION ) /bin/shellcheck
36+ .PHONY : shellcheck
37+ shellcheck : mise
38+ @$(MAKE ) mise-plugin-install DEP=shellcheck
39+ @$(MAKE ) mise-install DEP_VER=shellcheck@$(SHELLCHECK_VERSION )
40+
41+ .PHONY : tools
42+ tools : kube-linter chartsnap shellcheck
2043
2144.PHONY : lint
2245lint : tools lint.charts.kong lint.shellcheck
@@ -25,8 +48,10 @@ lint: tools lint.charts.kong lint.shellcheck
2548lint.charts.kong :
2649 $(KUBE_LINTER ) lint charts/kong
2750
28- lint.shellcheck :
29- shellcheck ./scripts/*
51+ .PHONY : lint.shellcheck
52+ lint.shellcheck : shellcheck
53+ $(SHELLCHECK ) ./scripts/*
54+ $(SHELLCHECK ) ./charts/gateway-operator/scripts/*
3055
3156.PHONY : test.golden
3257test.golden :
0 commit comments