* clear

* feat: Add everything

* fix: Commenht
This commit is contained in:
Prad Nukala
2025-10-03 14:45:52 -04:00
committed by GitHub
parent 43b4a11c06
commit 13e6c3e84d
1935 changed files with 655061 additions and 40058 deletions
+120
View File
@@ -0,0 +1,120 @@
#!/usr/bin/make -f
DOCKER := $(shell which docker)
PROJECT_NAME = sonr-client-sdk
# golangci-lint Docker image version
GOLANGCI_VERSION := v2.3.1
###############################################################################
### Build ###
###############################################################################
build:
@gum log --level info "Building Go client SDK..."
@go build ./...
###############################################################################
### Formatting ###
###############################################################################
format fmt:
@gum log --level info "Formatting Go code with golangci-lint Docker..."
@$(DOCKER) run --rm -t -v $$(pwd):/app -w /app \
--user $$(id -u):$$(id -g) \
-v $$(go env GOCACHE):/.cache/go-build -e GOCACHE=/.cache/go-build \
-v $$(go env GOMODCACHE):/.cache/mod -e GOMODCACHE=/.cache/mod \
-v ~/.cache/golangci-lint:/.cache/golangci-lint -e GOLANGCI_LINT_CACHE=/.cache/golangci-lint \
golangci/golangci-lint:$(GOLANGCI_VERSION) golangci-lint run --fix --issues-exit-code=0
###############################################################################
### Linting ###
###############################################################################
lint:
@gum log --level info "Running golangci-lint Docker..."
@$(DOCKER) run --rm -t -v $$(pwd):/app -w /app \
--user $$(id -u):$$(id -g) \
-v $$(go env GOCACHE):/.cache/go-build -e GOCACHE=/.cache/go-build \
-v $$(go env GOMODCACHE):/.cache/mod -e GOMODCACHE=/.cache/mod \
-v ~/.cache/golangci-lint:/.cache/golangci-lint -e GOLANGCI_LINT_CACHE=/.cache/golangci-lint \
golangci/golangci-lint:$(GOLANGCI_VERSION) golangci-lint run --timeout=10m
###############################################################################
### Testing ###
###############################################################################
test:
@gum log --level info "Running all tests..."
@go test -mod=readonly -race -coverprofile=coverage.txt -covermode=atomic ./...
test-unit:
@gum log --level info "Running unit tests..."
@go test -mod=readonly -short -race ./...
test-integration:
@gum log --level info "Running integration tests..."
@go test -mod=readonly -race -tags=integration ./tests/integration/...
test-verbose:
@gum log --level info "Running tests with verbose output..."
@go test -mod=readonly -v -race ./...
test-cover:
@gum log --level info "Running tests with coverage..."
@go test -mod=readonly -race -coverprofile=coverage.txt -covermode=atomic ./...
@go tool cover -html=coverage.txt -o coverage.html
@gum log --level info "Coverage report generated: coverage.html"
benchmark:
@gum log --level info "Running benchmarks..."
@go test -mod=readonly -bench=. -benchmem ./...
###############################################################################
### Dependencies ###
###############################################################################
deps:
@gum log --level info "Installing dependencies..."
@go mod download
tidy:
@gum log --level info "Tidying dependencies..."
@go mod tidy
verify:
@gum log --level info "Verifying dependencies..."
@go mod verify
###############################################################################
### Clean ###
###############################################################################
clean:
@gum log --level info "Cleaning build artifacts..."
@rm -f coverage.txt coverage.html
@go clean -cache
###############################################################################
### Help ###
###############################################################################
help:
@gum log --level info "Available targets:"
@gum log --level info " build - Build the Go client SDK"
@gum log --level info " format/fmt - Format Go code using golangci-lint"
@gum log --level info " lint - Run golangci-lint"
@gum log --level info " test - Run all tests with coverage"
@gum log --level info " test-unit - Run unit tests only"
@gum log --level info " test-integration - Run integration tests"
@gum log --level info " test-verbose - Run tests with verbose output"
@gum log --level info " test-cover - Run tests and generate HTML coverage report"
@gum log --level info " benchmark - Run benchmarks"
@gum log --level info " deps - Download dependencies"
@gum log --level info " tidy - Tidy and verify dependencies"
@gum log --level info " verify - Verify dependencies"
@gum log --level info " clean - Clean build artifacts"
@gum log --level info " help - Show this help message"
.DEFAULT_GOAL := help
.PHONY: build format fmt lint test test-unit test-integration test-verbose test-cover benchmark deps tidy verify clean help