Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- timestamp = $(shell /bin/date "+%F %T")
- goos = linux
- goarch = amd64
- bin = $(CURDIR)/bin/snowflake-$(goos)-$(goarch)
- gofiles = `find $(CURDIR) -name "*.go" -type f -not -path "$(CURDIR)/src/vendor/*"`
- packages = `go list $(CURDIR)/... | grep -v /vendor/`
- docker-image-tag = quay.io/yingzhuo/snowflake:latest
- docker-build-context = $(CURDIR)/bin/
- # 菜单
- usage:
- @echo "------------------------------------------"
- @echo " 目标 | 功能"
- @echo "------------------------------------------"
- @echo " usage | 显示本菜单"
- @echo " fmt-check | 格式化检查"
- @echo " fmt | 格式化代码"
- @echo " ls-pkg | 列出所有包"
- @echo " ls-go | 列出所有Go文件"
- @echo " clean | 清理构建产物"
- @echo " compile | 编译源码"
- @echo " build-image | 构建Docker镜像"
- @echo " push-image | 推送Docker镜像"
- @echo " push-code | 将代码推送到Github"
- @echo "------------------------------------------"
- # 列出所有包
- ls-pkg:
- @echo $(packages)
- # 列出所有go文件
- ls-go:
- @echo $(gofiles)
- # 格式化检查
- fmt-check:
- @diff=$$(gofmt -s -d $(gofiles)); \
- if [ -n "$$diff" ]; then \
- echo "请运行 'make fmt' :"; \
- echo "$${diff}"; \
- exit 1; \
- fi;
- # 格式化代码
- fmt:
- @gofmt -s -w $(gofiles)
- # 清理
- clean:
- @rm -rf $(bin) &> /dev/null || true
- @docker image rm $(docker-image-tag) &> /dev/null || true
- @docker image prune -f &> /dev/null
- # 编译
- compile: clean fmt
- GOOS=$(goos) GOARCH=$(goarch) go build -o $(bin) github.com/yingzhuo/main
- # 构建docker镜像
- build-image: compile
- docker image build -t $(docker-image-tag) $(docker-build-context)
- # 推送镜像到仓库
- push-image: build-image
- @cat $(CURDIR)/.github/quay.io.pwd | docker login --username=yingzhuo --password-stdin quay.io
- docker image push $(docker-image-tag)
- @docker logout quay.io &> /dev/null
- # 推送源代码
- push-code: clean fmt
- git add .
- git commit -m "$(timestamp)"
- git push
- .PHONY: usage fmt fmt-check ls-go ls-pkg compile build-image push-image clean push-code
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement