1- SHELL := $(shell which bash)
1+ SHELL := $(shell which bash)
22
3- NO_COLOR := \033[0m
4- OK_COLOR := \033[32;01m
5- ERR_COLOR := \033[31;01m
6- WARN_COLOR := \033[36;01m
7- ATTN_COLOR := \033[33;01m
3+ NO_COLOR := \033[0m
4+ OK_COLOR := \033[32;01m
5+ ERR_COLOR := \033[31;01m
6+ WARN_COLOR := \033[36;01m
7+ ATTN_COLOR := \033[33;01m
88
9- GOOS := $(shell go env GOOS)
10- GOARCH := $(shell go env GOARCH)
11- GOPRIVATE := "github.com/aserto-dev"
12- DOCKER_BUILDKIT := 1
9+ GOOS := $(shell go env GOOS)
10+ GOARCH := $(shell go env GOARCH)
11+ GOPRIVATE := "github.com/aserto-dev"
12+ DOCKER_BUILDKIT := 1
1313
14- SVU_VERSION := 1.12.0
15- GOTESTSUM_VERSION := 1.11.0
16- GOLANGCI-LINT_VERSION := 1.56.2
14+ EXT_DIR := ./.ext
15+ EXT_BIN_DIR := ${EXT_DIR}/bin
16+ EXT_TMP_DIR := ${EXT_DIR}/tmp
1717
18- EXT_DIR := ./.ext
19- EXT_BIN_DIR := ${EXT_DIR}/bin
20- EXT_TMP_DIR := ${EXT_DIR}/tmp
18+ VAULT_VER := 1.8.12
19+ SVU_VER := 1.12.0
20+ GOTESTSUM_VER := 1.11.0
21+ GOLANGCI-LINT_VER := 1.56.2
22+ GORELEASER_VER := 1.24.0
23+ WIRE_VER := 0.6.0
24+ BUF_VER := 1.34.0
25+
26+ RELEASE_TAG := $$(svu )
27+
28+ .DEFAULT_GOAL := build
2129
2230.PHONY : deps
23- deps : info install-golangci-lint install-gotestsum
31+ deps : info install-svu install-goreleaser install-golangci-lint install-gotestsum
32+ @echo -e " $( ATTN_COLOR) ==> $@ $( NO_COLOR) "
33+
34+ .PHONY : build
35+ build :
36+ @echo -e " $( ATTN_COLOR) ==> $@ $( NO_COLOR) "
37+ @${EXT_BIN_DIR} /goreleaser build --clean --snapshot --single-target
38+
39+ .PHONY : dev-release
40+ dev-release :
2441 @echo -e " $( ATTN_COLOR) ==> $@ $( NO_COLOR) "
42+ @${EXT_BIN_DIR} /goreleaser release --clean --snapshot
43+
44+ .PHONY : release
45+ release :
46+ @echo -e " $( ATTN_COLOR) ==> $@ $( NO_COLOR) "
47+ @${EXT_BIN_DIR} /goreleaser release --clean
48+
49+ .PHONY : snapshot
50+ snapshot :
51+ @echo -e " $( ATTN_COLOR) ==> $@ $( NO_COLOR) "
52+ @${EXT_BIN_DIR} /goreleaser release --clean --snapshot
2553
2654.PHONY : generate
2755generate :
2856 @echo -e " $( ATTN_COLOR) ==> $@ $( NO_COLOR) "
29- @go generate ./...
57+ @GOBIN= ${PWD} / ${EXT_BIN_DIR} go generate ./...
3058
3159.PHONY : lint
3260lint :
@@ -36,37 +64,78 @@ lint:
3664.PHONY : test
3765test :
3866 @echo -e " $( ATTN_COLOR) ==> $@ $( NO_COLOR) "
39- @${EXT_BIN_DIR} /gotestsum --format short-verbose -- -count=1 -v ./...;
67+ @${EXT_BIN_DIR} /gotestsum --format short-verbose -- -count=1 -parallel=1 -v -coverprofile=cover.out -coverpkg=./... ./...;
68+
69+ .PHONY : write-version
70+ write-version :
71+ @echo -e " $( ATTN_COLOR) ==> $@ $( NO_COLOR) "
72+ @git describe --tags > ./VERSION.txt
73+
4074
4175.PHONY : info
4276info :
4377 @echo -e " $( ATTN_COLOR) ==> $@ $( NO_COLOR) "
4478 @echo " GOOS: ${GOOS} "
4579 @echo " GOARCH: ${GOARCH} "
80+ @echo " EXT_DIR: ${EXT_DIR} "
4681 @echo " EXT_BIN_DIR: ${EXT_BIN_DIR} "
4782 @echo " EXT_TMP_DIR: ${EXT_TMP_DIR} "
83+ @echo " RELEASE_TAG: ${RELEASE_TAG} "
84+
85+ .PHONY : install-svu
86+ install-svu : install-svu-${GOOS}
87+ @echo -e " $( ATTN_COLOR) ==> $@ $( NO_COLOR) "
88+ @chmod +x ${EXT_BIN_DIR} /svu
89+ @${EXT_BIN_DIR} /svu --version
90+
91+ .PHONY : install-svu-darwin
92+ install-svu-darwin : ${EXT_TMP_DIR} ${EXT_BIN_DIR}
93+ @echo -e " $( ATTN_COLOR) ==> $@ $( NO_COLOR) "
94+ @gh release download --repo https://github.com/caarlos0/svu --pattern " svu_*_darwin_all.tar.gz" --output " ${EXT_TMP_DIR} /svu.tar.gz" --clobber
95+ @tar -xvf ${EXT_TMP_DIR} /svu.tar.gz --directory ${EXT_BIN_DIR} svu & > /dev/null
96+
97+ .PHONY : install-svu-linux
98+ install-svu-linux : ${EXT_TMP_DIR} ${EXT_BIN_DIR}
99+ @echo -e " $( ATTN_COLOR) ==> $@ $( NO_COLOR) "
100+ @gh release download --repo https://github.com/caarlos0/svu --pattern " svu_*_linux_${GOARCH} .tar.gz" --output " ${EXT_TMP_DIR} /svu.tar.gz" --clobber
101+ @tar -xvf ${EXT_TMP_DIR} /svu.tar.gz --directory ${EXT_BIN_DIR} svu & > /dev/null
48102
49103.PHONY : install-gotestsum
50104install-gotestsum : ${EXT_TMP_DIR} ${EXT_BIN_DIR}
51105 @echo -e " $( ATTN_COLOR) ==> $@ $( NO_COLOR) "
52- @gh release download v${GOTESTSUM_VERSION } --repo https://github.com/gotestyourself/gotestsum --pattern " gotestsum_${GOTESTSUM_VERSION } _${GOOS} _${GOARCH} .tar.gz" --output " ${EXT_TMP_DIR} /gotestsum.tar.gz" --clobber
106+ @gh release download v${GOTESTSUM_VER } --repo https://github.com/gotestyourself/gotestsum --pattern " gotestsum_${GOTESTSUM_VER } _${GOOS} _${GOARCH} .tar.gz" --output " ${EXT_TMP_DIR} /gotestsum.tar.gz" --clobber
53107 @tar -xvf ${EXT_TMP_DIR} /gotestsum.tar.gz --directory ${EXT_BIN_DIR} gotestsum & > /dev/null
54108 @chmod +x ${EXT_BIN_DIR} /gotestsum
55109 @${EXT_BIN_DIR} /gotestsum --version
56110
57111.PHONY : install-golangci-lint
58112install-golangci-lint : ${EXT_TMP_DIR} ${EXT_BIN_DIR}
59113 @echo -e " $( ATTN_COLOR) ==> $@ $( NO_COLOR) "
60- @gh release download v${GOLANGCI-LINT_VERSION } --repo https://github.com/golangci/golangci-lint --pattern " golangci-lint-${GOLANGCI-LINT_VERSION } -${GOOS} -${GOARCH} .tar.gz" --output " ${EXT_TMP_DIR} /golangci-lint.tar.gz" --clobber
114+ @gh release download v${GOLANGCI-LINT_VER } --repo https://github.com/golangci/golangci-lint --pattern " golangci-lint-${GOLANGCI-LINT_VER } -${GOOS} -${GOARCH} .tar.gz" --output " ${EXT_TMP_DIR} /golangci-lint.tar.gz" --clobber
61115 @tar --strip=1 -xvf ${EXT_TMP_DIR} /golangci-lint.tar.gz --strip-components=1 --directory ${EXT_TMP_DIR} & > /dev/null
62116 @mv ${EXT_TMP_DIR} /golangci-lint ${EXT_BIN_DIR} /golangci-lint
63117 @chmod +x ${EXT_BIN_DIR} /golangci-lint
64118 @${EXT_BIN_DIR} /golangci-lint --version
65119
120+ .PHONY : install-goreleaser
121+ install-goreleaser : ${EXT_TMP_DIR} ${EXT_BIN_DIR}
122+ @echo -e " $( ATTN_COLOR) ==> $@ $( NO_COLOR) "
123+ @gh release download v${GORELEASER_VER} --repo https://github.com/goreleaser/goreleaser --pattern " goreleaser_$$ (uname -s)_$$ (uname -m).tar.gz" --output " ${EXT_TMP_DIR} /goreleaser.tar.gz" --clobber
124+ @tar -xvf ${EXT_TMP_DIR} /goreleaser.tar.gz --directory ${EXT_BIN_DIR} goreleaser & > /dev/null
125+ @chmod +x ${EXT_BIN_DIR} /goreleaser
126+ @${EXT_BIN_DIR} /goreleaser --version
127+
128+
66129.PHONY : clean
67130clean :
68131 @echo -e " $( ATTN_COLOR) ==> $@ $( NO_COLOR) "
69- @rm -rf ./.ext
132+ @rm -rf ${EXT_DIR}
133+ @rm -rf ${BIN_DIR}
134+ @rm -rf ./dist
135+
136+ ${BIN_DIR} :
137+ @echo -e " $( ATTN_COLOR) ==> $@ $( NO_COLOR) "
138+ @mkdir -p ${BIN_DIR}
70139
71140${EXT_BIN_DIR} :
72141 @echo -e " $( ATTN_COLOR) ==> $@ $( NO_COLOR) "
0 commit comments