Some checks are pending
Docs Deploy / build_and_deploy (push) Waiting to run
Generate Docs / cli (push) Waiting to run
Generate Config Doc / cli (push) Waiting to run
Go formatting / go-formatting (push) Waiting to run
Check links / markdown-link-check (push) Waiting to run
Integration / pre-test (push) Waiting to run
Integration / test on (push) Blocked by required conditions
Integration / status (push) Blocked by required conditions
Lint / Lint Go code (push) Waiting to run
Test / test (ubuntu-latest) (push) Waiting to run
105 lines
No EOL
2.6 KiB
Text
105 lines
No EOL
2.6 KiB
Text
BRANCH := $(shell git rev-parse --abbrev-ref HEAD)
|
|
COMMIT := $(shell git log -1 --format='%H')
|
|
APPNAME := <%= AppName %>
|
|
|
|
# do not override user values
|
|
ifeq (,$(VERSION))
|
|
VERSION := $(shell git describe --exact-match 2>/dev/null)
|
|
# if VERSION is empty, then populate it with branch name and raw commit hash
|
|
ifeq (,$(VERSION))
|
|
VERSION := $(BRANCH)-$(COMMIT)
|
|
endif
|
|
endif
|
|
|
|
# Update the ldflags with the app, client & server names
|
|
ldflags = -X github.com/cosmos/cosmos-sdk/version.Name=$(APPNAME) \
|
|
-X github.com/cosmos/cosmos-sdk/version.AppName=$(APPNAME)d \
|
|
-X github.com/cosmos/cosmos-sdk/version.Version=$(VERSION) \
|
|
-X github.com/cosmos/cosmos-sdk/version.Commit=$(COMMIT)
|
|
|
|
BUILD_FLAGS := -ldflags '$(ldflags)'
|
|
|
|
##############
|
|
### Test ###
|
|
##############
|
|
|
|
test-unit:
|
|
@echo Running unit tests...
|
|
@go test -mod=readonly -v -timeout 30m ./...
|
|
|
|
test-race:
|
|
@echo Running unit tests with race condition reporting...
|
|
@go test -mod=readonly -v -race -timeout 30m ./...
|
|
|
|
test-cover:
|
|
@echo Running unit tests and creating coverage report...
|
|
@go test -mod=readonly -v -timeout 30m -coverprofile=$(COVER_FILE) -covermode=atomic ./...
|
|
@go tool cover -html=$(COVER_FILE) -o $(COVER_HTML_FILE)
|
|
@rm $(COVER_FILE)
|
|
|
|
bench:
|
|
@echo Running unit tests with benchmarking...
|
|
@go test -mod=readonly -v -timeout 30m -bench=. ./...
|
|
|
|
test: govet govulncheck test-unit
|
|
|
|
.PHONY: test test-unit test-race test-cover bench
|
|
|
|
#################
|
|
### Install ###
|
|
#################
|
|
|
|
all: install
|
|
|
|
install:
|
|
@echo "--> ensure dependencies have not been modified"
|
|
@go mod verify
|
|
@echo "--> installing $(APPNAME)d"
|
|
@go install $(BUILD_FLAGS) -mod=readonly ./cmd/$(APPNAME)d
|
|
|
|
.PHONY: all install
|
|
|
|
##################
|
|
### Protobuf ###
|
|
##################
|
|
|
|
# Use this target if you do not want to use Ignite for generating proto files
|
|
|
|
proto-deps:
|
|
@echo "Installing proto deps"
|
|
@echo "Proto deps present, run 'go tool' to see them"
|
|
|
|
proto-gen:
|
|
@echo "Generating protobuf files..."
|
|
@ignite generate proto-go --yes
|
|
|
|
.PHONY: proto-gen
|
|
|
|
#################
|
|
### Linting ###
|
|
#################
|
|
|
|
lint:
|
|
@echo "--> Running linter"
|
|
@go tool github.com/golangci/golangci-lint/cmd/golangci-lint run ./... --timeout 15m
|
|
|
|
lint-fix:
|
|
@echo "--> Running linter and fixing issues"
|
|
@go tool github.com/golangci/golangci-lint/cmd/golangci-lint run ./... --fix --timeout 15m
|
|
|
|
.PHONY: lint lint-fix
|
|
|
|
###################
|
|
### Development ###
|
|
###################
|
|
|
|
govet:
|
|
@echo Running go vet...
|
|
@go vet ./...
|
|
|
|
govulncheck:
|
|
@echo Running govulncheck...
|
|
@go tool golang.org/x/vuln/cmd/govulncheck@latest
|
|
@govulncheck ./...
|
|
|
|
.PHONY: govet govulncheck |