@@ -16,7 +16,8 @@ SHELL = /usr/bin/env bash
1616
1717GOLANGCI_VERSION = 2.7.2
1818GOFUMPT_VERSION =0.9.2
19- JQ_VERSION =1.7.1
19+ JQ_VERSION =1.8.1
20+ KIND_VERSION =0.31.0
2021
2122PLATFORM_NAME := $(shell uname -m)
2223
@@ -33,48 +34,72 @@ endif
3334ifeq ($(OS_NAME ) , Linux)
3435 GOFUMPT_PLATFORM = linux
3536 JQ_PLATFORM = linux
37+ KIND_PLATFORM = linux
3638else ifeq ($(OS_NAME), Darwin)
3739 GOFUMPT_PLATFORM = darwin
3840 JQ_PLATFORM = macos
41+ KIND_PLATFORM = darwin
3942endif
4043
4144# Set arch for deps
4245ifeq ($(PLATFORM_NAME ) , x86_64)
4346 GOFUMPT_ARCH = amd64
4447 JQ_PLATFORM_ARCH = $(JQ_PLATFORM)-amd64
48+ KIND_ARCH = amd64
4549else ifeq ($(PLATFORM_NAME), arm64)
4650 GOFUMPT_ARCH = arm64
4751 JQ_PLATFORM_ARCH = $(JQ_PLATFORM)-arm64
52+ KIND_ARCH = arm64
4853endif
4954
50- .PHONY : bin/jq bin/gofumpt bin/golangci-lint clean validation/license/download
55+ .PHONY : bin/jq bin/gofumpt bin/golangci-lint clean validation/license/download curl-installed docker-installed go-installed clean/test clean/ssh clean/docker
5156
5257bin :
5358 mkdir -p bin
5459
5560curl-installed :
5661 command -v curl > /dev/null
5762
63+ docker-installed :
64+ command -v docker > /dev/null
65+
5866go-installed :
59- command -v go
67+ command -v go > /dev/null
6068 go version
6169
6270bin/jq : curl-installed bin
63- curl -sSfL https://github.com/jqlang/jq/releases/download/jq-$(JQ_VERSION ) /jq-$(JQ_PLATFORM_ARCH ) -o ./bin/jq
64- @chmod +x " ./bin/jq"
71+ if ! ./hack/check_binary.sh " jq" " --version" " $( JQ_VERSION) " ; then \
72+ echo " Install jq" ; \
73+ curl -sSfL https://github.com/jqlang/jq/releases/download/jq-$(JQ_VERSION ) /jq-$(JQ_PLATFORM_ARCH ) -o ./bin/jq; \
74+ chmod +x " ./bin/jq" ; \
75+ fi
6576
6677bin/golangci-lint : curl-installed bin
67- curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | BINARY=golangci-lint bash -s -- v${GOLANGCI_VERSION}
68- @chmod +x " ./bin/golangci-lint"
78+ if ! ./hack/check_binary.sh " golangci-lint" " --version" " $( GOLANGCI_VERSION) " ; then \
79+ echo "Install golangci-lint"; \
80+ curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | BINARY=golangci-lint bash -s -- v${GOLANGCI_VERSION}; \
81+ chmod +x "./bin/golangci-lint"; \
82+ fi
6983
7084bin/gofumpt : curl-installed bin
71- curl -sSfLo " bin/gofumpt" https://github.com/mvdan/gofumpt/releases/download/v$(GOFUMPT_VERSION ) /gofumpt_v$(GOFUMPT_VERSION ) _$(GOFUMPT_PLATFORM ) _$(GOFUMPT_ARCH )
72- @chmod +x " ./bin/gofumpt"
73-
74- deps : bin bin/jq bin/golangci-lint bin/gofumpt
75-
76- test : go-installed
85+ if ! ./hack/check_binary.sh " gofumpt" " -version" " $( GOFUMPT_VERSION) " ; then \
86+ echo "Install gofumpt"; \
87+ curl -sSfLo "bin/gofumpt" https://github.com/mvdan/gofumpt/releases/download/v$(GOFUMPT_VERSION)/gofumpt_v$(GOFUMPT_VERSION)_$(GOFUMPT_PLATFORM)_$(GOFUMPT_ARCH); \
88+ chmod +x "./bin/gofumpt"; \
89+ fi
90+
91+ bin/kind : curl-installed bin
92+ if ! ./hack/check_binary.sh " kind" " version" " $( KIND_VERSION) " ; then \
93+ echo "Install kind"; \
94+ curl -sSfLo "bin/kind" https://github.com/kubernetes-sigs/kind/releases/download/v$(KIND_VERSION)/kind-$(KIND_PLATFORM)-$(KIND_ARCH); \
95+ chmod +x "./bin/kind"; \
96+ fi
97+
98+ deps : bin bin/jq bin/golangci-lint bin/gofumpt bin/kind
99+
100+ test : go-installed docker-installed bin/kind
77101 ./hack/run_tests.sh
102+ $(MAKE ) clean/test
78103
79104lint : bin/golangci-lint
80105 ./bin/golangci-lint run ./... -c .golangci.yaml
@@ -104,8 +129,20 @@ validation/license: go-installed validation/license/download
104129 # prevent goland ide errors
105130 rm -f ./validation/go.mod ./validation/go.sum
106131
132+ clean/ssh : clean/docker
133+ echo " Remove test dir /tmp/test-lib-connection"
134+ rm -rf /tmp/test-lib-connection
135+
136+ clean/docker : docker-installed
137+ ./hack/clean_docker.sh
138+
139+ clean/kind : bin/kind
140+ ./hack/clean_kind.sh
141+
142+ clean/test : clean/kind clean/ssh
143+
107144all : bin deps validation/license fmt lint test
108145
109- clean :
146+ clean : clean/test
110147 rm -rf ./bin
111148 rm -rf ./validation
0 commit comments