123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- SOURCE_FILES?=./...
- TEST_PATTERN?=.
- TEST_OPTIONS?=
- export PATH := ./bin:$(PATH)
- export GO111MODULE := on
- export GOPROXY := https://gocenter.io
- # Build a beta version of goreleaser
- build:
- go build cmd/nps/nps.go
- go build cmd/npc/npc.go
- .PHONY: build
- # Install all the build and lint dependencies
- setup:
- curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh
- curl -L https://git.io/misspell | sh
- go mod download
- .PHONY: setup
- # Run all the tests
- test:
- go test $(TEST_OPTIONS) -failfast -race -coverpkg=./... -covermode=atomic -coverprofile=coverage.txt $(SOURCE_FILES) -run $(TEST_PATTERN) -timeout=2m
- .PHONY: test
- # Run all the tests and opens the coverage report
- cover: test
- go tool cover -html=coverage.txt
- .PHONY: cover
- # gofmt and goimports all go files
- fmt:
- find . -name '*.go' -not -wholename './vendor/*' | while read -r file; do gofmt -w -s "$$file"; goimports -w "$$file"; done
- .PHONY: fmt
- # Run all the linters
- lint:
- # TODO: fix tests and lll issues
- ./bin/golangci-lint run --tests=false --enable-all --disable=lll ./...
- ./bin/misspell -error **/*
- .PHONY: lint
- # Clean go.mod
- go-mod-tidy:
- @go mod tidy -v
- @git diff HEAD
- @git diff-index --quiet HEAD
- .PHONY: go-mod-tidy
- # Run all the tests and code checks
- ci: build test lint go-mod-tidy
- .PHONY: ci
- # Generate the static documentation
- static:
- @hugo --enableGitInfo --source www
- .PHONY: static
- # Show to-do items per file.
- todo:
- @grep \
- --exclude-dir=vendor \
- --exclude-dir=node_modules \
- --exclude=Makefile \
- --text \
- --color \
- -nRo -E ' TODO:.*|SkipNow' .
- .PHONY: todo
- clean:
- rm npc nps
- .PHONY: clean
- .DEFAULT_GOAL := build
|