-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
50 lines (39 loc) · 1.34 KB
/
Makefile
File metadata and controls
50 lines (39 loc) · 1.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
APP?=os-cli
USERSPACE?=serboox
RELEASE?=1.0.0
PROJECT?=github.com/${USERSPACE}/${APP}
BUILD_TIME?=$(shell date -u '+%Y-%m-%d_%H:%M:%S')
GOOS?=linux
REPO_INFO=$(shell git config --get remote.origin.url)
ifndef COMMIT
COMMIT := git-$(shell git rev-parse --short HEAD)
endif
ifndef TEST_DIR
TEST_DIR :=...
endif
# Default target executed when no arguments are given to make.
default_target: run-r
clean:
rm -f ${APP}
build: clean golangci-lint
@echo "+ $@"
GOFLAGS=-mod=vendor CGO_ENABLED=1 go build -v -installsuffix cgo \
-ldflags "-s -w -X ${PROJECT}/src/version.Release=${RELEASE} -X ${PROJECT}/src/version.Commit=${COMMIT} -X ${PROJECT}/src/version.Repository=${REPO_INFO} -X ${PROJECT}/src/version.BuildTime=${BUILD_TIME}"
golangci-lint-base:
@echo "+ $@"
GO111MODULE=on golangci-lint run -c .golangci-simple.yml ./...
golangci-lint:
@echo "+ $@"
GO111MODULE=on golangci-lint run ./...
docker-build:
@echo "+ $@"
docker build -t ${APP}:latest . --no-cache --force-rm
test:
@echo "+ $@"
@go test $(shell go list ${PROJECT}/... | grep -v vendor)
test-v:
@echo "+ $@"
@go test -v $(shell go list ${PROJECT}/... | grep -v -P '(vendor|version|tools)')
cover:
@echo "+ $@"
@go list -f '{{if len .TestGoFiles}}"go test -coverprofile={{.Dir}}/.coverprofile {{.ImportPath}}"{{end}}' $(shell go list ${PROJECT}/... | grep -v vendor) | xargs -L 1 sh -c