47 lines
2.0 KiB
Makefile
47 lines
2.0 KiB
Makefile
PKG := "122.51.31.227/go-course/go18/devcloud"
|
|
MOD_DIR := $(shell go env GOPATH)/pkg/mod
|
|
PKG_LIST := $(shell go list ${PKG}/... | grep -v /vendor/ | grep -v redis)
|
|
GO_FILES := $(shell find . -name '*.go' | grep -v /vendor/ | grep -v _test.go)
|
|
|
|
GIT_TAG := $(shell git describe --tags --exact-match 2>/dev/null || echo "UnTag")
|
|
BUILD_BRANCH := $(shell git rev-parse --abbrev-ref HEAD)
|
|
BUILD_COMMIT := ${shell git rev-parse HEAD}
|
|
BUILD_TIME := ${shell date '+%Y-%m-%d %H:%M:%S'}
|
|
BUILD_GO_VERSION := $(shell go version | grep -o 'go[0-9].[0-9].*')
|
|
VERSION_PATH := "github.com/infraboard/mcube/v2/ioc/config/application"
|
|
OUTPUT_NAME := "devcloud-api"
|
|
|
|
.PHONY: all dep lint vet test test-coverage build clean
|
|
|
|
all: build
|
|
|
|
dep: ## Get the dependencies
|
|
@go mod tidy
|
|
|
|
lint: ## Lint Golang files
|
|
@golint -set_exit_status ${PKG_LIST}
|
|
|
|
vet: ## Run go vet
|
|
@go vet ${PKG_LIST}
|
|
|
|
run: ## Run Devcloud
|
|
@go run main.go start
|
|
|
|
build: dep ## Build the binary file
|
|
@go build -a -o dist/${OUTPUT_NAME} -ldflags "-s -w" -ldflags "-X '${VERSION_PATH}.GIT_BRANCH=${BUILD_BRANCH}' -X '${VERSION_PATH}.GIT_COMMIT=${BUILD_COMMIT}' -X '${VERSION_PATH}.BUILD_TIME=${BUILD_TIME}' -X '${VERSION_PATH}.GO_VERSION=${BUILD_GO_VERSION}' -X '${VERSION_PATH}.GIT_TAG=${GIT_TAG}'" ${MAIN_FILE}
|
|
|
|
linux: dep ## Build the linux binary file
|
|
@GOOS=linux GOARCH=amd64 go build -a -o dist/${OUTPUT_NAME} -ldflags "-s -w" -ldflags "-X '${VERSION_PATH}.GIT_BRANCH=${BUILD_BRANCH}' -X '${VERSION_PATH}.GIT_COMMIT=${BUILD_COMMIT}' -X '${VERSION_PATH}.BUILD_TIME=${BUILD_TIME}' -X '${VERSION_PATH}.GO_VERSION=${BUILD_GO_VERSION}' -X '${VERSION_PATH}.GIT_TAG=${GIT_TAG}'" ${MAIN_FILE}
|
|
|
|
image: dep ## Build the docker image
|
|
docker build -t ${IMAGE_VERSION} -f Dockerfile .
|
|
|
|
test: ## Run unittests
|
|
@go test -short ${PKG_LIST}
|
|
|
|
test-coverage: ## Run tests with coverage
|
|
@go test -short -coverprofile cover.out -covermode=atomic ${PKG_LIST}
|
|
@cat cover.out >> coverage.txt
|
|
|
|
help: ## Display this help screen
|
|
@grep -h -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
|