-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
38 lines (32 loc) · 936 Bytes
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
PROG ?= stream-split
IMAGE ?= bruth/$(PROG)
COMMIT ?= $(shell git rev-parse --short HEAD)
BRANCH ?= $(shell git symbolic-ref -q --short HEAD)
TAG ?= $(shell git describe --tags --exact-match 2>/dev/null)
GO111MODULE ?= on
GOPATH ?= $(shell go env GOPATH)
GOOS ?= $(shell go env GOOS)
GOARCH ?= $(shell go env GOARCH)
build:
go build -o $(CURDIR)/dist/$(GOOS)-$(GOARCH)/$(PROG) $(CURDIR)
image:
docker build -t $(IMAGE):$(COMMIT) .
ifeq ($(BRANCH),master)
docker tag $(IMAGE):$(COMMIT) $(IMAGE):latest
else ifneq ($(BRANCH),)
docker tag $(IMAGE):$(COMMIT) $(IMAGE):$(BRANCH)
endif
ifneq ($(TAG),)
docker tag $(IMAGE):$(COMMIT) $(IMAGE):$(TAG)
endif
push:
docker $(PUSHARGS) push $(IMAGE):$(COMMIT)
ifeq ($(BRANCH),master)
docker $(PUSHARGS) push $(IMAGE):latest
else ifneq ($(BRANCH),)
docker $(PUSHARGS) push $(IMAGE):$(BRANCH)
endif
ifneq ($(TAG),)
docker $(PUSHARGS) push $(IMAGE):$(TAG)
endif
.PHONY: build image push