63 lines
1.5 KiB
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
|
|
|