bitxhub/Makefile

98 lines
2.7 KiB
Makefile
Raw Normal View History

2020-03-29 21:32:01 +08:00
SHELL := /bin/bash
CURRENT_PATH = $(shell pwd)
APP_NAME = bitxhub
2020-11-03 11:08:00 +08:00
APP_VERSION = 1.4.0
2020-03-29 21:32:01 +08:00
# build with verison infos
VERSION_DIR = github.com/meshplus/${APP_NAME}
BUILD_DATE = $(shell date +%FT%T)
GIT_COMMIT = $(shell git log --pretty=format:'%h' -n 1)
GIT_BRANCH = $(shell git rev-parse --abbrev-ref HEAD)
2020-04-26 22:20:52 +08:00
GOLDFLAGS += -X "${VERSION_DIR}.BuildDate=${BUILD_DATE}"
GOLDFLAGS += -X "${VERSION_DIR}.CurrentCommit=${GIT_COMMIT}"
GOLDFLAGS += -X "${VERSION_DIR}.CurrentBranch=${GIT_BRANCH}"
GOLDFLAGS += -X "${VERSION_DIR}.CurrentVersion=${APP_VERSION}"
2020-03-29 21:32:01 +08:00
GO = GO111MODULE=on go
2020-10-13 11:16:45 +08:00
TEST_PKGS := $(shell $(GO) list ./... | grep -v 'mock_*' | grep -v 'tester' | grep -v 'proto' | grep -v 'cmd')
2020-03-29 21:32:01 +08:00
RED=\033[0;31m
GREEN=\033[0;32m
BLUE=\033[0;34m
NC=\033[0m
MODS = $(shell sed -e ':a' -e 'N' -e '$$!ba' -e 's/\n/\\n/g' goent.diff)
2020-03-29 21:32:01 +08:00
help: Makefile
@printf "${BLUE}Choose a command run:${NC}\n"
@sed -n 's/^##//p' $< | column -t -s ':' | sed -e 's/^/ /'
## make prepare: Preparation before development
prepare:
2020-04-01 02:06:24 +08:00
@cd scripts && bash prepare.sh
2020-03-29 21:32:01 +08:00
## make test: Run go unittest
test:
go generate ./...
2020-03-30 18:46:49 +08:00
@$(GO) test ${TEST_PKGS} -count=1
2020-03-29 21:32:01 +08:00
## make test-coverage: Test project with cover
test-coverage:
2020-04-01 02:06:24 +08:00
go generate ./...
@go test -short -coverprofile cover.out -covermode=atomic ${TEST_PKGS}
2020-10-20 14:07:43 +08:00
@cat cover.out | grep -v "pb.go" >> coverage.txt
2020-03-29 21:32:01 +08:00
## make tester: Run integration test
tester:
cd tester && $(GO) test -v -run TestTester
## make install: Go install the project
install:
2020-03-29 21:32:01 +08:00
cd internal/repo && packr
rm -f imports/imports.go
$(GO) install -ldflags '${GOLDFLAGS}' ./cmd/${APP_NAME}
@printf "${GREEN}Install bitxhub successfully!${NC}\n"
2020-03-29 21:32:01 +08:00
build:
2020-03-30 12:59:22 +08:00
cd internal/repo && packr
@mkdir -p bin
rm -f imports/imports.go
$(GO) build -ldflags '${GOLDFLAGS}' ./cmd/${APP_NAME}
2020-03-30 12:59:22 +08:00
@mv ./bitxhub bin
@printf "${GREEN}Build bitxhub successfully!${NC}\n"
2020-03-29 21:32:01 +08:00
installent:
cd internal/repo && packr
cp imports/imports.go.template imports/imports.go
@sed "s?)?$(MODS)\n)?" go.mod > goent.mod
$(GO) install -tags ent -ldflags '${GOLDFLAGS}' -modfile goent.mod ./cmd/${APP_NAME}
@printf "${GREEN}Install bitxhub ent successfully!${NC}\n"
buildent:
cd internal/repo && packr
@mkdir -p bin
cp imports/imports.go.template imports/imports.go
@sed "s?)?$(MODS)\n)?" go.mod > goent.mod
$(GO) build -tags ent -ldflags '${GOLDFLAGS}' -modfile goent.mod ./cmd/${APP_NAME}
@mv ./bitxhub bin
@printf "${GREEN}Build bitxhub ent successfully!${NC}\n"
mod:
sed "s?)?$(MODS)\n)?" go.mod
2020-03-29 21:32:01 +08:00
## make linter: Run golanci-lint
linter:
2020-03-31 14:00:16 +08:00
golangci-lint run
2020-03-29 21:32:01 +08:00
## make cluster: Run cluster including 4 nodes
cluster:install${TAGS}
2020-03-30 12:59:22 +08:00
@cd scripts && bash cluster.sh
2020-03-29 21:32:01 +08:00
## make solo: Run one node in solo mode
solo:install${TAGS}
@cd scripts && bash solo.sh
2020-06-09 16:52:00 +08:00
.PHONY: tester build