pkg/Makefile

63 lines
1.5 KiB
Makefile

GOBUILD = GOEXPERIMENT=jsonv2 CGO_ENABLED=0 go build -trimpath
PREFIX ?= $(shell pwd)
BUILDTIME = ${shell TZ=Asia/Shanghai date +%Y-%m-%dT%H:%M:%S%z}
BUILD_PATH = ${PREFIX}/build
ifdef VERSION
VERSION=${VERSION}
else
VERSION=$(shell git describe --tags --always --dirty="-dirty")
endif
ifdef GITCOMMIT
GITCOMMIT=${GITCOMMIT}
else
GITCOMMIT=$(shell git rev-parse HEAD)
endif
# Go Debug Build
ifdef DEBUG_BUILD
GOBUILD=CGO_ENABLED=0 go build -gcflags=all="-N -l"
endif
# Go Reproducible Build
ifdef REPRODUCIBLE_BUILD
GOBUILD=CGO_ENABLED=0 go build -trimpath -ldflags=-buildid=
BUILDTIME=0
endif
LDFLAG=-ldflags "-X git.ifooth.com/common/pkg/version.Version=${VERSION} \
-X git.ifooth.com/common/pkg/version.GitCommit=${GITCOMMIT} \
-X git.ifooth.com/common/pkg/version.BuildTime=${BUILDTIME}"
# 逃逸分析
GCFLAG=-gcflags=""
ifdef GO_GCFLAG
GCFLAG=-gcflags="${GO_GCFLAG}"
endif
.PHONY:
lint:
@echo ">> linting"
GOEXPERIMENT=jsonv2 golangci-lint fmt
GOEXPERIMENT=jsonv2 golangci-lint run ./...
.PHONY: test
test:
GOEXPERIMENT=jsonv2 go test -count=1 -cover ./...
.PHONY: benchmark
benchmark:
@echo ">> benchmark not support"
.PHONY: build
build:
@echo ">> rebuilding binaries"
${GOBUILD} ${LDFLAG} ${GCFLAG} -o ./bin/ai ./main.go
.PHONY: docker
docker: build
@docker build -t ccr.ccs.tencentyun.com/ifooth/ifooth-ai:latest .
@docker push ccr.ccs.tencentyun.com/ifooth/ifooth-ai:latest