mirror of
https://github.com/cloudnativelabs/kube-router.git
synced 2025-10-10 01:11:12 +02:00
Osxcompat 1 (#377)
* Added option BUILD_IN_DOCKER to build binarys in a docker container * removed unnecessary deps * locked docker image version for buildin
This commit is contained in:
parent
28f10ff2a7
commit
dd5d2faf36
27
Makefile
27
Makefile
@ -1,7 +1,8 @@
|
||||
NAME?=kube-router
|
||||
GOARCH?=amd64
|
||||
DEV_SUFFIX?=-git
|
||||
BUILD_DATE?=$(shell date --iso-8601)
|
||||
OSX=$(filter Darwin,$(shell uname))
|
||||
BUILD_DATE?=$(shell date +%Y-%m-%dT%H:%M:%S%z)
|
||||
LOCAL_PACKAGES?=app app/controllers app/options app/watchers utils
|
||||
IMG_NAMESPACE?=cloudnativelabs
|
||||
GIT_COMMIT=$(shell git describe --tags --dirty)
|
||||
@ -12,10 +13,11 @@ REGISTRY?=$(if $(IMG_FQDN),$(IMG_FQDN)/$(IMG_NAMESPACE)/$(NAME),$(IMG_NAMESPACE)
|
||||
REGISTRY_DEV?=$(REGISTRY)$(DEV_SUFFIX)
|
||||
IN_DOCKER_GROUP=$(filter docker,$(shell groups))
|
||||
IS_ROOT=$(filter 0,$(shell id -u))
|
||||
DOCKER=$(if $(or $(IN_DOCKER_GROUP),$(IS_ROOT)),docker,sudo docker)
|
||||
DOCKER=$(if $(or $(IN_DOCKER_GROUP),$(IS_ROOT),$(OSX)),docker,sudo docker)
|
||||
MAKEFILE_DIR=$(dir $(realpath $(firstword $(MAKEFILE_LIST))))
|
||||
UPSTREAM_IMPORT_PATH=$(GOPATH)/src/github.com/cloudnativelabs/kube-router/
|
||||
|
||||
BUILD_IN_DOCKER?=false
|
||||
DOCKER_BUILD_IMAGE?=golang:1.8.7-alpine
|
||||
ifeq ($(GOARCH), arm)
|
||||
QEMU_ARCH=arm
|
||||
ARCH_TAG_PREFIX=$(GOARCH)
|
||||
@ -34,12 +36,25 @@ $(info Building for GOARCH=$(GOARCH))
|
||||
all: test kube-router container ## Default target. Runs tests, builds binaries and images.
|
||||
|
||||
kube-router:
|
||||
ifeq "$(BUILD_IN_DOCKER)" "true"
|
||||
@echo Starting kube-router binary build.
|
||||
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
|
||||
$(DOCKER) run -v $(PWD):/go/src/github.com/cloudnativelabs/kube-router -w /go/src/github.com/cloudnativelabs/kube-router $(DOCKER_BUILD_IMAGE) \
|
||||
sh -c ' \
|
||||
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'
|
||||
@echo Finished kube-router binary build.
|
||||
else
|
||||
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
|
||||
endif
|
||||
|
||||
test: gofmt gomoqs ## Runs code quality pipelines (gofmt, tests, coverage, lint, etc)
|
||||
go test github.com/cloudnativelabs/kube-router github.com/cloudnativelabs/kube-router/app/... github.com/cloudnativelabs/kube-router/utils/
|
||||
ifeq "$(BUILD_IN_DOCKER)" "true"
|
||||
$(DOCKER) run -v $(PWD):/go/src/github.com/cloudnativelabs/kube-router -w /go/src/github.com/cloudnativelabs/kube-router $(DOCKER_BUILD_IMAGE) \
|
||||
sh -c 'go test github.com/cloudnativelabs/kube-router github.com/cloudnativelabs/kube-router/app/... github.com/cloudnativelabs/kube-router/utils/'
|
||||
else
|
||||
go test github.com/cloudnativelabs/kube-router github.com/cloudnativelabs/kube-router/app/... github.com/cloudnativelabs/kube-router/utils/
|
||||
endif
|
||||
|
||||
vagrant-up: export docker=$(DOCKER)
|
||||
vagrant-up: export DEV_IMG=$(REGISTRY_DEV):$(IMG_TAG)
|
||||
@ -174,7 +189,7 @@ else
|
||||
endif
|
||||
|
||||
gobgp: vendor/github.com/osrg/gobgp/gobgp
|
||||
$(DOCKER) run -v $(PWD):/pwd golang:alpine \
|
||||
$(DOCKER) run -v $(PWD):/pwd $(DOCKER_BUILD_IMAGE) \
|
||||
sh -c ' \
|
||||
apk add -U git && \
|
||||
ln -s /pwd/vendor /go/src && \
|
||||
|
Loading…
x
Reference in New Issue
Block a user