From 1e5cd68533262db9d8b44c923af3f19f0bddcd52 Mon Sep 17 00:00:00 2001 From: Solly Ross Date: Wed, 27 Jun 2018 15:55:19 -0400 Subject: [PATCH] Makefile with actual deps This makes the makefile's build target have actual dependencies, so that it only rebuilds any given adapter if that adapter's actual go files have changed (yes, this is mostly redundant with Go 1.10, but it makes working on read-only filesystems a bit nicer). --- Makefile | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 527e5c60..89f58d3e 100644 --- a/Makefile +++ b/Makefile @@ -27,12 +27,14 @@ ifeq ($(ARCH),s390x) GOIMAGE=s390x/golang:1.8 endif -.PHONY: all build docker-build push-% push test verify-gofmt gofmt verify +.PHONY: all docker-build push-% push test verify-gofmt gofmt verify build-local-image -all: build -build: vendor - CGO_ENABLED=0 GOARCH=$(ARCH) go build -tags netgo -o $(OUT_DIR)/$(ARCH)/adapter github.com/directxman12/k8s-prometheus-adapter/cmd/adapter +all: $(OUT_DIR)/$(ARCH)/adapter +src_deps=$(shell find pkg cmd -type f -name "*.go") +$(OUT_DIR)/%/adapter: vendor $(src_deps) + CGO_ENABLED=0 GOARCH=$* go build -tags netgo -o $(OUT_DIR)/$(ARCH)/adapter github.com/directxman12/k8s-prometheus-adapter/cmd/adapter + docker-build: vendor cp deploy/Dockerfile $(TEMP_DIR) cd $(TEMP_DIR) && sed -i "s|BASEIMAGE|$(BASEIMAGE)|g" Dockerfile @@ -43,6 +45,13 @@ docker-build: vendor docker build -t $(REGISTRY)/$(IMAGE)-$(ARCH):$(VERSION) $(TEMP_DIR) rm -rf $(TEMP_DIR) +build-local-image: $(OUT_DIR)/$(ARCH)/adapter + cp deploy/Dockerfile $(TEMP_DIR) + cp $(OUT_DIR)/$(ARCH)/adapter $(TEMP_DIR) + cd $(TEMP_DIR) && sed -i "s|BASEIMAGE|scratch|g" Dockerfile + docker build -t $(REGISTRY)/$(IMAGE)-$(ARCH):$(VERSION) $(TEMP_DIR) + rm -rf $(TEMP_DIR) + push-%: $(MAKE) ARCH=$* docker-build docker push $(REGISTRY)/$(IMAGE)-$*:$(VERSION)