|
1 |
| -.PHONY: all |
| 1 | +.PHONY: all help |
| 2 | +.DEFAULT_GOAL := help |
2 | 3 |
|
3 |
| -GOLANG_CI_LINT_VERSION=1.64.5 |
| 4 | +# COLORS |
| 5 | +YELLOW = \033[33m |
| 6 | +GREEN = \033[32m |
| 7 | +WHITE = \033[37m |
| 8 | +RESET = \033[0m |
| 9 | + |
| 10 | +GOLANG_CI_LINT_VERSION=2.2.2 |
4 | 11 | GO_BIN=$(shell pwd)/.build
|
5 | 12 | export
|
6 | 13 |
|
7 | 14 | all: test lint
|
8 | 15 |
|
9 |
| -build: |
10 |
| - @echo "Building AWS RDS Store" |
11 |
| - cd store/awsrds && $(MAKE) build |
12 |
| - @echo "Building Vault store" |
13 |
| - cd store/vault && $(MAKE) build |
14 |
| - @echo "Building main module" |
15 |
| - go build ./... |
| 16 | +build: ## Build library and sample stores |
| 17 | + @printf "$(GREEN)Building AWS RDS Store$(RESET)\n" |
| 18 | + @cd store/awsrds && $(MAKE) -s build |
| 19 | + @printf "$(GREEN)Building Vault store$(RESET)\n" |
| 20 | + @cd store/vault && $(MAKE) -s build |
| 21 | + @printf "$(GREEN)Building main module$(RESET)\n" |
| 22 | + @go build ./... |
16 | 23 |
|
17 |
| -test: |
18 |
| - @echo "Testing AWS RDS store" |
19 |
| - cd store/awsrds && $(MAKE) test |
20 |
| - @echo "Testing Vault store" |
21 |
| - cd store/vault && $(MAKE) test |
22 |
| - @echo "Testing main module" |
23 |
| - go test github.com/davepgreene/go-db-credential-refresh/driver -count=1 -coverprofile=cover.out |
| 24 | +test: ## Test everything |
| 25 | + @printf "$(GREEN)Testing AWS RDS store$(RESET)\n" |
| 26 | + @cd store/awsrds && $(MAKE) -s test |
| 27 | + @printf "\n$(GREEN)Testing Vault store$(RESET)\n" |
| 28 | + @cd store/vault && $(MAKE) -s test |
| 29 | + @printf "\n$(GREEN)Testing main module$(RESET)\n" |
| 30 | + @go test github.com/davepgreene/go-db-credential-refresh/driver -count=1 -coverprofile=cover.out |
24 | 31 |
|
25 |
| -lint: lint-setup |
26 |
| - @echo "Linting AWS RDS store" |
27 |
| - cd store/awsrds && $(MAKE) lint |
28 |
| - @echo "Linting Vault store" |
29 |
| - cd store/vault && $(MAKE) lint |
30 |
| - @echo "Linting main module" |
31 |
| - "$(GO_BIN)/golangci-lint" run ./... |
| 32 | +lint: lint-setup ## Lint everything |
| 33 | + @printf "$(GREEN)Linting AWS RDS store$(RESET)\n" |
| 34 | + @cd store/awsrds && $(MAKE) -s lint |
| 35 | + @printf "\n$(GREEN)Linting Vault store$(RESET)\n" |
| 36 | + @cd store/vault && $(MAKE) -s lint |
| 37 | + @printf "\n$(GREEN)Linting main module$(RESET)\n" |
| 38 | + @"$(GO_BIN)/golangci-lint" run ./... |
32 | 39 |
|
33 |
| -bench: |
34 |
| - @echo "Benching AWS RDS store" |
35 |
| - cd store/awsrds && $(MAKE) bench |
36 |
| - @echo "Benching Vault store" |
37 |
| - cd store/vault && $(MAKE) bench |
38 |
| - @echo "Benching main module" |
39 |
| - go test ./... -bench -count=1 -coverprofile=cover.out |
| 40 | +bench: ## Go test with benchmarks |
| 41 | + @printf "$(GREEN)Benching AWS RDS store$(RESET)\n" |
| 42 | + @cd store/awsrds && $(MAKE) -s bench |
| 43 | + @printf "\n$(GREEN)Benching Vault store$(RESET)\n" |
| 44 | + @cd store/vault && $(MAKE) -s bench |
| 45 | + @printf "\n$(GREEN)Benching main module$(RESET)\n" |
| 46 | + @go test ./... -bench -count=1 -coverprofile=cover.out |
40 | 47 |
|
41 |
| -cover: test |
42 |
| - mkdir -p "$(GO_BIN)/coverage" |
| 48 | +cover: test ## Go test with coverage |
| 49 | + @mkdir -p "$(GO_BIN)/coverage" |
43 | 50 | @echo "Generating coverage for AWS RDS store"
|
44 |
| - cd store/awsrds && $(MAKE) cover |
| 51 | + @cd store/awsrds && $(MAKE) -s cover |
45 | 52 | @echo "Generating coverage for Vault store"
|
46 |
| - cd store/vault && $(MAKE) cover |
| 53 | + @cd store/vault && $(MAKE) -s cover |
47 | 54 | @echo "Generating coverage for main module"
|
48 |
| - go tool cover -html=cover.out -o "$(GO_BIN)/coverage/main.html" |
| 55 | + @go tool cover -html=cover.out -o "$(GO_BIN)/coverage/main.html" |
49 | 56 |
|
50 | 57 | lint-setup: _bin
|
51 | 58 | @# Make sure linter is up to date
|
52 |
| - $(eval CURRENT_VERSION := $(strip $(shell $(GO_BIN)/bin/golangci-lint version 2>&1 | sed 's/[^0-9.]*\([0-9.]*\).*/\1/'))) |
| 59 | + $(eval CURRENT_VERSION := $(strip $(shell $(GO_BIN)/golangci-lint version 2>&1 | sed 's/[^0-9.]*\([0-9.]*\).*/\1/'))) |
53 | 60 | @if [ "$(CURRENT_VERSION)" != "$(GOLANG_CI_LINT_VERSION)" ]; then \
|
| 61 | + echo "Updating golangci-lint from $(CURRENT_VERSION) to version $(GOLANG_CI_LINT_VERSION)"; \ |
54 | 62 | curl -sfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b "$(GO_BIN)" "v$(GOLANG_CI_LINT_VERSION)" ; \
|
55 | 63 | fi
|
56 | 64 |
|
57 | 65 | _bin:
|
58 |
| - mkdir -p "$(GO_BIN)" |
| 66 | + @mkdir -p "$(GO_BIN)" |
| 67 | + |
| 68 | +format: ## Gofmt |
| 69 | + @gofmt -w -e . |
59 | 70 |
|
60 |
| -format: |
61 |
| - gofmt -w -e . |
| 71 | +tidy: ## Tidy up go modules |
| 72 | + @go mod tidy |
| 73 | + @cd store/awsrds && go mod tidy |
| 74 | + @cd store/vault && go mod tidy |
62 | 75 |
|
63 |
| -tidy: |
64 |
| - go mod tidy |
65 |
| - cd store/awsrds && go mod tidy |
66 |
| - cd store/vault && go mod tidy |
| 76 | +help: |
| 77 | + @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}' |
0 commit comments