68 lines
1.2 KiB
Makefile
68 lines
1.2 KiB
Makefile
GO := go
|
|
|
|
ROOT_DIR := $(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))
|
|
CACHE_DIR := $(ROOT_DIR)/.cache
|
|
|
|
export GOBIN := $(ROOT_DIR)/.gobin
|
|
export PATH := $(GOBIN):$(PATH)
|
|
|
|
GORELEASER := $(GO) run github.com/goreleaser/goreleaser@v1.8.3
|
|
GOLANGCI_LINT := $(GO) run github.com/golangci/golangci-lint/cmd/golangci-lint@v1.46.1
|
|
|
|
GOTESTSUM := $(GO) run gotest.tools/gotestsum@v1.7.0
|
|
|
|
GOREADME := $(GO) run github.com/posener/goreadme/cmd/goreadme@v1.4.2
|
|
|
|
.PHONY: readme
|
|
readme:
|
|
$(GOREADME) \
|
|
-constants \
|
|
-credit=false \
|
|
-types \
|
|
-methods \
|
|
-variabless \
|
|
> README.md
|
|
|
|
.PHONY: setup-githooks
|
|
setup-githooks:
|
|
git config core.hooksPath githooks
|
|
|
|
.PHONY: test
|
|
test:
|
|
$(GOTESTSUM) \
|
|
--junitfile report.xml \
|
|
-- \
|
|
-race \
|
|
-cover \
|
|
-coverprofile=coverage.out \
|
|
-tags=integration \
|
|
./... \
|
|
-timeout=120m
|
|
|
|
.PHONY: coverage
|
|
coverage: test
|
|
$(GO) tool cover -html coverage.out
|
|
|
|
.PHONY: lint
|
|
lint:
|
|
$(GOLANGCI_LINT) run \
|
|
--enable-all \
|
|
--timeout 10m
|
|
|
|
.PHONY: tidy
|
|
tidy:
|
|
$(GO) mod tidy
|
|
$(GO) mod vendor
|
|
|
|
.PHONY: build
|
|
build:
|
|
$(GORELEASER) build --rm-dist --snapshot
|
|
|
|
.PHONY: release
|
|
release:
|
|
$(GORELEASER) release --rm-dist
|
|
|
|
.PHONY: release-snapshot
|
|
release-snapshot:
|
|
$(GORELEASER) release --rm-dist --snapshot --skip-publish
|