Skip to content

Commit

Permalink
dev: add gateway version into makefile
Browse files Browse the repository at this point in the history
  • Loading branch information
zhangxu19830126 committed Nov 29, 2018
1 parent 0584b21 commit 1368234
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 36 deletions.
36 changes: 20 additions & 16 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,9 +1,16 @@
ROOT_DIR = $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))/
VERSION_PATH = $(shell echo $(ROOT_DIR) | sed -e "s;${GOPATH}/src/;;g")pkg/util
LD_GIT_COMMIT = -X '$(VERSION_PATH).GitCommit=`git rev-parse --short HEAD`'
LD_BUILD_TIME = -X '$(VERSION_PATH).BuildTime=`date +%FT%T%z`'
LD_GO_VERSION = -X '$(VERSION_PATH).GoVersion=`go version`'
LD_FLAGS = -ldflags "$(LD_GIT_COMMIT) $(LD_BUILD_TIME) $(LD_GO_VERSION) -w -s"
RELEASE_VERSION = $(release_version)

ifeq ("$(RELEASE_VERSION)","")
RELEASE_VERSION := "unknown"
endif

ROOT_DIR = $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))/
VERSION_PATH = $(shell echo $(ROOT_DIR) | sed -e "s;${GOPATH}/src/;;g")pkg/util
LD_GIT_COMMIT = -X '$(VERSION_PATH).GitCommit=`git rev-parse --short HEAD`'
LD_BUILD_TIME = -X '$(VERSION_PATH).BuildTime=`date +%FT%T%z`'
LD_GO_VERSION = -X '$(VERSION_PATH).GoVersion=`go version`'
LD_GATEWAY_VERSION = -X '$(VERSION_PATH).Version=$(RELEASE_VERSION)'
LD_FLAGS = -ldflags "$(LD_GIT_COMMIT) $(LD_BUILD_TIME) $(LD_GO_VERSION) $(LD_GATEWAY_VERSION) -w -s"

GOOS = linux
CGO_ENABLED = 0
Expand All @@ -12,12 +19,6 @@ DIST_DIR = $(ROOT_DIR)dist/
ETCD_VER = v3.0.14
ETCD_DOWNLOAD_URL = https://github.com/coreos/etcd/releases/download

DOCKER_TAG := $(tag)

ifeq ("$(DOCKER_TAG)","")
DOCKER_TAG := $(shell date +%Y%m%d%H%M)
endif

.PHONY: release
release: dist_dir apiserver proxy;

Expand All @@ -26,10 +27,13 @@ release_darwin: darwin dist_dir apiserver proxy;

.PHONY: docker
docker: release download_etcd ui;
@echo ========== current docker tag is: $(DOCKER_TAG) ==========
docker build -t fagongzi/gateway:$(DOCKER_TAG) -f Dockerfile .
docker build -t fagongzi/proxy:$(DOCKER_TAG) -f Dockerfile-proxy .
docker build -t fagongzi/apiserver:$(DOCKER_TAG) -f Dockerfile-apiserver .
@echo ========== current docker tag is: $(RELEASE_VERSION) ==========
docker build -t fagongzi/gateway:$(RELEASE_VERSION) -f Dockerfile .
docker build -t fagongzi/proxy:$(RELEASE_VERSION) -f Dockerfile-proxy .
docker build -t fagongzi/apiserver:$(RELEASE_VERSION) -f Dockerfile-apiserver .
docker tag fagongzi/gateway:$(RELEASE_VERSION) fagongzi/gateway
docker tag fagongzi/proxy:$(RELEASE_VERSION) fagongzi/proxy
docker tag fagongzi/apiserver:$(RELEASE_VERSION) fagongzi/apiserver

.PHONY: ui
ui: ; $(info ======== compile ui:)
Expand Down
23 changes: 4 additions & 19 deletions docs/build.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,45 +11,30 @@ Gateway目前支持Etcd作为元数据区的存储,所以需要一个Etcd环
如果你希望从源码编译Gateway,你需要一个[golang 环境](https://github.com/golang/go),必须使用`1.8`以上的版本。

# 从源码编译

- 手动编译

```bash
cd $GOPATH/src/github.com/fagongzi/gateway/cmd/proxy
go build -o proxy ./...

cd $GOPATH/src/github.com/fagongzi/gateway/cmd/api
go build -o apiserver ./...
```

- 使用Makefile脚本

以下命令默认在项目根目录(即`$GOPATH/src/github.com/fagongzi/gateway`)目录下执行。

- 编译适合当前系统的二进制文件

```bash
make
make release_version='version string'
```

- 指定编译的二进制文件类型

```bash
# Linux
make release
make release release_version='version string'

# Darwin(mac osx)
make release_darwin
make release_darwin release_version='version string'
```

- 打包为docker镜像

```bash
# 使用默认的docker image tag,即当前编译时间
make docker

# 自定义docker image tag
make docker tag='this_is_my_tag'
make docker release_version='version string'
```

- 更多使用说明
Expand Down
3 changes: 2 additions & 1 deletion pkg/util/version.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,14 @@ var (
GitCommit = ""
BuildTime = ""
GoVersion = ""
Version = ""
)

// PrintVersion 输出版本信息
func PrintVersion() bool {
fmt.Println("Version : ", Version)
fmt.Println("GitCommit: ", GitCommit)
fmt.Println("BuildTime: ", BuildTime)
fmt.Println("GoVersion: ", GoVersion)

return true
}

0 comments on commit 1368234

Please sign in to comment.