Skip to content

Commit f58066b

Browse files
authored
chore: add support for a Makefile (scaleway#2787)
1 parent 7b63487 commit f58066b

File tree

1 file changed

+65
-0
lines changed

1 file changed

+65
-0
lines changed

Makefile

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
GOOS ?=
2+
GOARCH ?=
3+
4+
GOCMD := go
5+
GOCLEAN := $(GOCMD) clean
6+
GOTEST := $(GOCMD) test
7+
8+
PKGS := ./...
9+
GOFLAGS ?=
10+
TESTFLAGS ?= -race
11+
LDFLAGS ?= -s -w
12+
13+
GOLANGCI_LINT_VER := latest
14+
15+
RED := \033[0;31m
16+
GREEN := \033[0;32m
17+
YELLOW := \033[0;33m
18+
BLUE := \033[0;34m
19+
NC := \033[0m
20+
21+
.DEFAULT_GOAL := help
22+
23+
.PHONY: help clean lint lint-fix test check-tokens check version install-tools
24+
25+
help: ## Show available commands
26+
@echo "$(BLUE)Scaleway Go SDK - Available Commands$(NC)\n"
27+
@grep -E '^[a-zA-Z0-9_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort \
28+
| awk 'BEGIN {FS = ":.*?## "}; {printf " $(GREEN)%-22s$(NC) %s\n", $$1, $$2}'
29+
@echo ""
30+
31+
clean: ## Clean build artifacts
32+
@echo "$(BLUE)Cleaning...$(NC)"
33+
$(GOCLEAN)
34+
35+
lint: ## Run linters
36+
@echo "$(BLUE)Linting...$(NC)"
37+
@./scripts/lint.sh
38+
39+
lint-fix: ## Run linters with auto-fix
40+
@echo "$(BLUE)Linting with fix...$(NC)"
41+
@./scripts/lint.sh --write
42+
43+
test: ## Run tests with race detector
44+
@echo "$(BLUE)Testing...$(NC)"
45+
$(GOTEST) $(GOFLAGS) $(TESTFLAGS) $(PKGS)
46+
47+
check-tokens: ## Check for exposed tokens
48+
@echo "$(BLUE)Checking for exposed tokens...$(NC)"
49+
@./scripts/check_for_tokens.sh
50+
51+
check: check-tokens lint test ## Run full local checks
52+
@echo "$(GREEN)All checks passed!$(NC)"
53+
54+
version: ## Show tool versions
55+
@echo "$(BLUE)Version Information:$(NC)"
56+
@echo "Go version: $$($(GOCMD) version)"
57+
@echo "Go modules: $$($(GOCMD) env GOMOD)"
58+
@if command -v golangci-lint >/dev/null 2>&1; then \
59+
echo "golangci-lint: $$(golangci-lint version)"; \
60+
fi
61+
62+
install-tools: ## Install dev tools
63+
@echo "$(BLUE)Installing tools...$(NC)"
64+
@echo "$(YELLOW)Installing golangci-lint $(GOLANGCI_LINT_VER)$(NC)"
65+
@$(GOCMD) install github.com/golangci/golangci-lint/cmd/golangci-lint@$(GOLANGCI_LINT_VER)

0 commit comments

Comments
 (0)