46 lines
1.3 KiB
Makefile
46 lines
1.3 KiB
Makefile
GO = GO111MODULE=on go
|
|
#GO = GO111MODULE=on GOOS=linux GOARCH=amd64 go
|
|
GOBUILD = $(GO) build -mod=readonly
|
|
GOTEST = $(GO) test -v -p 1 -coverprofile=coverage-management.out
|
|
|
|
STAMP = $(shell date +%s)
|
|
GITHASH = $(shell git rev-parse --short=8 HEAD)
|
|
GITTAG = $(shell git describe --tags --abbrev=0)
|
|
|
|
BUILDFLAGS := -ldflags "-X main.buildstamp=$(STAMP) -X main.githash=$(GITHASH) -X main.version=$(GITTAG)"
|
|
pkgs = ./...
|
|
|
|
all: build-all
|
|
|
|
.PHONY: build-all
|
|
build-all: proto build-webserver build-tcd
|
|
|
|
.PHONY: build-webserver
|
|
build-webserver:
|
|
cd webserver && $(GOBUILD) $(BUILDFLAGS) -o ../build/webserver main.go
|
|
|
|
.PHONY: build-tcd
|
|
build-tcd:
|
|
cd tcontrollerd && CGO_ENABLED=0 $(GOBUILD) $(BUILDFLAGS) -o ../build/tcontrollerd main.go
|
|
|
|
.PHONY: test
|
|
test:
|
|
$(GOTEST) -failfast $(pkgs)
|
|
|
|
.PHONY: proto
|
|
proto:
|
|
@./scripts/genproto.sh
|
|
|
|
.PHONY: lint
|
|
lint:
|
|
# 'go list' needs to be executed before staticcheck to prepopulate the modules cache.
|
|
# Otherwise staticcheck might fail randomly for some reason not yet explained.
|
|
$(GO) list -e -compiled -test=true -export=false -deps=true -find=false -tags= -- ./... > /dev/null
|
|
goimports -local chaitin.cn -w $$(find . -type f -name '*.go' -not -path "./vendor/*")
|
|
golangci-lint version
|
|
cd webserver && golangci-lint run -v --skip-dirs vendor --deadline 10m
|
|
|
|
.PHONY: clean
|
|
clean:
|
|
rm -rf build
|
|
|