Skip to content

Commit dd5d2fa

Browse files
roffemurali-reddy
authored andcommitted
Osxcompat 1 (#377)
* Added option BUILD_IN_DOCKER to build binarys in a docker container * removed unnecessary deps * locked docker image version for buildin
1 parent 28f10ff commit dd5d2fa

File tree

1 file changed

+21
-6
lines changed

1 file changed

+21
-6
lines changed

Makefile

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
NAME?=kube-router
22
GOARCH?=amd64
33
DEV_SUFFIX?=-git
4-
BUILD_DATE?=$(shell date --iso-8601)
4+
OSX=$(filter Darwin,$(shell uname))
5+
BUILD_DATE?=$(shell date +%Y-%m-%dT%H:%M:%S%z)
56
LOCAL_PACKAGES?=app app/controllers app/options app/watchers utils
67
IMG_NAMESPACE?=cloudnativelabs
78
GIT_COMMIT=$(shell git describe --tags --dirty)
@@ -12,10 +13,11 @@ REGISTRY?=$(if $(IMG_FQDN),$(IMG_FQDN)/$(IMG_NAMESPACE)/$(NAME),$(IMG_NAMESPACE)
1213
REGISTRY_DEV?=$(REGISTRY)$(DEV_SUFFIX)
1314
IN_DOCKER_GROUP=$(filter docker,$(shell groups))
1415
IS_ROOT=$(filter 0,$(shell id -u))
15-
DOCKER=$(if $(or $(IN_DOCKER_GROUP),$(IS_ROOT)),docker,sudo docker)
16+
DOCKER=$(if $(or $(IN_DOCKER_GROUP),$(IS_ROOT),$(OSX)),docker,sudo docker)
1617
MAKEFILE_DIR=$(dir $(realpath $(firstword $(MAKEFILE_LIST))))
1718
UPSTREAM_IMPORT_PATH=$(GOPATH)/src/github.com/cloudnativelabs/kube-router/
18-
19+
BUILD_IN_DOCKER?=false
20+
DOCKER_BUILD_IMAGE?=golang:1.8.7-alpine
1921
ifeq ($(GOARCH), arm)
2022
QEMU_ARCH=arm
2123
ARCH_TAG_PREFIX=$(GOARCH)
@@ -34,12 +36,25 @@ $(info Building for GOARCH=$(GOARCH))
3436
all: test kube-router container ## Default target. Runs tests, builds binaries and images.
3537

3638
kube-router:
39+
ifeq "$(BUILD_IN_DOCKER)" "true"
3740
@echo Starting kube-router binary build.
38-
GOARCH=$(GOARCH) CGO_ENABLED=0 go build -ldflags '-X github.com/cloudnativelabs/kube-router/app.version=$(GIT_COMMIT) -X github.com/cloudnativelabs/kube-router/app.buildDate=$(BUILD_DATE)' -o kube-router kube-router.go
41+
$(DOCKER) run -v $(PWD):/go/src/github.com/cloudnativelabs/kube-router -w /go/src/github.com/cloudnativelabs/kube-router $(DOCKER_BUILD_IMAGE) \
42+
sh -c ' \
43+
GOARCH=$(GOARCH) CGO_ENABLED=0 go build \
44+
-ldflags "-X github.com/cloudnativelabs/kube-router/app.version=$(GIT_COMMIT) -X github.com/cloudnativelabs/kube-router/app.buildDate=$(BUILD_DATE)" \
45+
-o kube-router kube-router.go'
3946
@echo Finished kube-router binary build.
47+
else
48+
GOARCH=$(GOARCH) CGO_ENABLED=0 go build -ldflags '-X github.com/cloudnativelabs/kube-router/app.version=$(GIT_COMMIT) -X github.com/cloudnativelabs/kube-router/app.buildDate=$(BUILD_DATE)' -o kube-router kube-router.go
49+
endif
4050

4151
test: gofmt gomoqs ## Runs code quality pipelines (gofmt, tests, coverage, lint, etc)
42-
go test github.com/cloudnativelabs/kube-router github.com/cloudnativelabs/kube-router/app/... github.com/cloudnativelabs/kube-router/utils/
52+
ifeq "$(BUILD_IN_DOCKER)" "true"
53+
$(DOCKER) run -v $(PWD):/go/src/github.com/cloudnativelabs/kube-router -w /go/src/github.com/cloudnativelabs/kube-router $(DOCKER_BUILD_IMAGE) \
54+
sh -c 'go test github.com/cloudnativelabs/kube-router github.com/cloudnativelabs/kube-router/app/... github.com/cloudnativelabs/kube-router/utils/'
55+
else
56+
go test github.com/cloudnativelabs/kube-router github.com/cloudnativelabs/kube-router/app/... github.com/cloudnativelabs/kube-router/utils/
57+
endif
4358

4459
vagrant-up: export docker=$(DOCKER)
4560
vagrant-up: export DEV_IMG=$(REGISTRY_DEV):$(IMG_TAG)
@@ -174,7 +189,7 @@ else
174189
endif
175190

176191
gobgp: vendor/github.com/osrg/gobgp/gobgp
177-
$(DOCKER) run -v $(PWD):/pwd golang:alpine \
192+
$(DOCKER) run -v $(PWD):/pwd $(DOCKER_BUILD_IMAGE) \
178193
sh -c ' \
179194
apk add -U git && \
180195
ln -s /pwd/vendor /go/src && \

0 commit comments

Comments
 (0)