Merge pull request #252 from Pensu/multi-arch
Making targets for multi-arch
This commit is contained in:
commit
6ac46515fe
55
Makefile
55
Makefile
|
|
@ -1,12 +1,15 @@
|
|||
all: build
|
||||
|
||||
FLAGS =
|
||||
COMMONENVVAR = GOOS=$(shell uname -s | tr A-Z a-z) GOARCH=$(subst x86_64,amd64,$(patsubst i%86,386,$(shell uname -m)))
|
||||
BUILDENVVAR = CGO_ENABLED=0
|
||||
TESTENVVAR =
|
||||
REGISTRY = quay.io/coreos
|
||||
TAG = $(shell git describe --abbrev=0)
|
||||
PKGS = $(shell go list ./... | grep -v /vendor/)
|
||||
ARCH ?= $(shell go env GOARCH)
|
||||
ALL_ARCH = amd64 arm arm64 ppc64le s390x
|
||||
|
||||
|
||||
IMAGE = $(REGISTRY)/kube-state-metrics
|
||||
MULTI_ARCH_IMG = $(IMAGE)-$(ARCH)
|
||||
|
||||
gofmtcheck:
|
||||
@go fmt $(PKGS) | grep ".*\.go"; if [ "$$?" = "0" ]; then exit 1; fi
|
||||
|
|
@ -22,22 +25,46 @@ doccheck:
|
|||
@cd Documentation; for doc in *.md; do if [ "$$doc" != "README.md" ] && ! grep -q "$$doc" *.md; then echo "ERROR: No link to documentation file $${doc} detected"; exit 1; fi; done
|
||||
@echo OK
|
||||
|
||||
deps:
|
||||
go get github.com/tools/godep
|
||||
build: clean
|
||||
GOOS=$(shell uname -s | tr A-Z a-z) GOARCH=$(ARCH) $(BUILDENVVAR) go build -o kube-state-metrics
|
||||
|
||||
build: clean deps
|
||||
$(COMMONENVVAR) $(BUILDENVVAR) godep go build -o kube-state-metrics
|
||||
test-unit: clean build
|
||||
GOOS=$(shell uname -s | tr A-Z a-z) GOARCH=$(ARCH) $(TESTENVVAR) go test --race $(FLAGS) $(PKGS)
|
||||
|
||||
test-unit: clean deps build
|
||||
$(COMMONENVVAR) $(TESTENVVAR) godep go test --race $(FLAGS) $(PKGS)
|
||||
TEMP_DIR := $(shell mktemp -d)
|
||||
|
||||
container: build
|
||||
docker build -t ${REGISTRY}/kube-state-metrics:$(TAG) .
|
||||
all: all-container
|
||||
|
||||
push: container
|
||||
gcloud docker -- push ${REGISTRY}/kube-state-metrics:$(TAG)
|
||||
sub-container-%:
|
||||
$(MAKE) --no-print-directory ARCH=$* container
|
||||
|
||||
sub-push-%:
|
||||
$(MAKE) --no-print-directory ARCH=$* push
|
||||
|
||||
all-container: $(addprefix sub-container-,$(ALL_ARCH))
|
||||
|
||||
all-push: $(addprefix sub-push-,$(ALL_ARCH))
|
||||
|
||||
container: .container-$(ARCH)
|
||||
.container-$(ARCH):
|
||||
cp -r * $(TEMP_DIR)
|
||||
GOOS=$(shell uname -s | tr A-Z a-z) GOARCH=$(ARCH) $(BUILDENVVAR) go build -o $(TEMP_DIR)/kube-state-metrics
|
||||
docker build -t $(MULTI_ARCH_IMG):$(TAG) $(TEMP_DIR)
|
||||
|
||||
ifeq ($(ARCH), amd64)
|
||||
# Adding check for amd64
|
||||
docker tag $(MULTI_ARCH_IMG):$(TAG) $(IMAGE):$(TAG)
|
||||
endif
|
||||
|
||||
|
||||
push: .push-$(ARCH)
|
||||
.push-$(ARCH): .container-$(ARCH)
|
||||
gcloud docker -- push $(MULTI_ARCH_IMG):$(TAG)
|
||||
ifeq ($(ARCH), amd64)
|
||||
gcloud docker -- push $(IMAGE):$(TAG)
|
||||
endif
|
||||
|
||||
clean:
|
||||
rm -f kube-state-metrics
|
||||
|
||||
.PHONY: all deps build test-unit container push clean
|
||||
.PHONY: all build all-push all-container test-unit container push clean
|
||||
|
|
|
|||
Loading…
Reference in New Issue