From dbaa2d8cdd50ad5c94a5cb28aec32ccbdbdec7e0 Mon Sep 17 00:00:00 2001 From: Owain Lewis Date: Wed, 4 Jul 2018 10:11:43 +0100 Subject: [PATCH 1/2] Simplify and improve the local developer experience for pushing images --- Makefile | 38 ++++++++++---------------------------- 1 file changed, 10 insertions(+), 28 deletions(-) diff --git a/Makefile b/Makefile index fff91a3a0..38d6f128c 100644 --- a/Makefile +++ b/Makefile @@ -18,19 +18,16 @@ ifdef WERCKER TENANT := "oracle" else NEW_NAMESPACE ?= e2e-${USER} - VERSION := ${USER}-$(shell date +%Y%m%d%H%M%S) + VERSION := ${USER}-$(shell git describe --always --dirty) TENANT := "spinnaker" endif ROOT_DIR := $(shell dirname $(abspath $(lastword $(MAKEFILE_LIST)))) PKG := github.com/oracle/mysql-operator -REGISTRY := iad.ocir.io/$(TENANT) +REGISTRY := iad.ocir.io SRC_DIRS := cmd pkg test/examples -REGISTRY_STRING := $(subst /,_,$(REGISTRY)) CMD_DIRECTORIES := $(sort $(dir $(wildcard ./cmd/*/))) COMMANDS := $(CMD_DIRECTORIES:./cmd/%/=%) -CONTAINER_FILES := $(addprefix .container-$(REGISTRY_STRING)-,$(addsuffix -$(VERSION),$(COMMANDS))) -PUSH_FILES := $(addprefix .push-$(REGISTRY_STRING)-,$(addsuffix -$(VERSION),$(COMMANDS))) ARCH := amd64 OS := linux @@ -75,23 +72,15 @@ build: dist build-dirs Makefile ARCH=$(ARCH) OS=$(OS) VERSION=$(VERSION) PKG=$(PKG) ./hack/build.sh cp $(BINARIES) ./bin/$(OS)_$(ARCH)/ -# Note: Only used for development, i.e. in CI the images are built using Wercker. -.PHONY: containers -containers: $(CONTAINER_FILES) -.container-$(REGISTRY_STRING)-%-$(VERSION): build dist - @echo Builing container: $* - @docker login -u '$(DOCKER_REGISTRY_USERNAME)' -p '$(DOCKER_REGISTRY_PASSWORD)' $(REGISTRY) - @docker build --build-arg=http_proxy --build-arg=https_proxy -t $(REGISTRY)/$*:$(VERSION) -f docker/$*/Dockerfile . - @docker images -q $(REGISTRY)/$*:$(VERSION) > $@ - # Note: Only used for development, i.e. in CI the images are pushed using Wercker. .PHONY: push -push: $(PUSH_FILES) -.push-$(REGISTRY_STRING)-%-$(VERSION): .container-$(REGISTRY_STRING)-%-$(VERSION) - @echo Pushing container: $* - @docker login -u '$(DOCKER_REGISTRY_USERNAME)' -p '$(DOCKER_REGISTRY_PASSWORD)' $(REGISTRY) - @docker push $(REGISTRY)/$*:$(VERSION) - @docker images -q $(REGISTRY)/$*:$(VERSION) > $@ +push: build + @docker build --build-arg=http_proxy --build-arg=https_proxy -t $(REGISTRY)/$(TENANT)/mysql-operator:$(VERSION) -f docker/mysql-operator/Dockerfile . + @docker build --build-arg=http_proxy --build-arg=https_proxy -t $(REGISTRY)/$(TENANT)/mysql-agent:$(VERSION) -f docker/mysql-agent/Dockerfile . + + @docker login iad.ocir.io -u $(DOCKER_REGISTRY_USERNAME) -p '$(DOCKER_REGISTRY_PASSWORD)' + @docker push $(REGISTRY)/$(TENANT)/mysql-operator:$(VERSION) + @docker push $(REGISTRY)/$(TENANT)/mysql-agent:$(VERSION) .PHONY: version version: @@ -102,14 +91,7 @@ lint: @find pkg cmd -name '*.go' | grep -v 'generated' | xargs -L 1 golint .PHONY: clean -clean: container-clean bin-clean - -.PHONY: container-clean -container-clean: - rm -rf .container-* .push-* dist - -.PHONY: bin-clean -bin-clean: +clean: rm -rf .go bin .PHONY: run-dev From 8751539f14e3316e45a8f9a3418292cd9aa6eb71 Mon Sep 17 00:00:00 2001 From: Owain Lewis Date: Thu, 5 Jul 2018 09:43:27 +0100 Subject: [PATCH 2/2] Implement review feedback --- Makefile | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/Makefile b/Makefile index 38d6f128c..f85e3fc48 100644 --- a/Makefile +++ b/Makefile @@ -17,20 +17,18 @@ ifdef WERCKER VERSION ?= ${WERCKER_GIT_COMMIT} TENANT := "oracle" else - NEW_NAMESPACE ?= e2e-${USER} - VERSION := ${USER}-$(shell git describe --always --dirty) - TENANT := "spinnaker" + VERSION ?= ${USER}-$(shell git describe --always --dirty) + TENANT ?= "spinnaker" endif -ROOT_DIR := $(shell dirname $(abspath $(lastword $(MAKEFILE_LIST)))) PKG := github.com/oracle/mysql-operator REGISTRY := iad.ocir.io SRC_DIRS := cmd pkg test/examples CMD_DIRECTORIES := $(sort $(dir $(wildcard ./cmd/*/))) COMMANDS := $(CMD_DIRECTORIES:./cmd/%/=%) -ARCH := amd64 -OS := linux +ARCH ?= amd64 +OS ?= linux UNAME_S := $(shell uname -s) ifeq ($(UNAME_S),Darwin) @@ -72,12 +70,23 @@ build: dist build-dirs Makefile ARCH=$(ARCH) OS=$(OS) VERSION=$(VERSION) PKG=$(PKG) ./hack/build.sh cp $(BINARIES) ./bin/$(OS)_$(ARCH)/ +.PHONY: build-docker +build-docker: + @docker build \ + --build-arg=http_proxy \ + --build-arg=https_proxy \ + -t $(REGISTRY)/$(TENANT)/mysql-operator:$(VERSION) \ + -f docker/mysql-operator/Dockerfile . + + @docker build \ + --build-arg=http_proxy \ + --build-arg=https_proxy \ + -t $(REGISTRY)/$(TENANT)/mysql-agent:$(VERSION) \ + -f docker/mysql-agent/Dockerfile . + # Note: Only used for development, i.e. in CI the images are pushed using Wercker. .PHONY: push -push: build - @docker build --build-arg=http_proxy --build-arg=https_proxy -t $(REGISTRY)/$(TENANT)/mysql-operator:$(VERSION) -f docker/mysql-operator/Dockerfile . - @docker build --build-arg=http_proxy --build-arg=https_proxy -t $(REGISTRY)/$(TENANT)/mysql-agent:$(VERSION) -f docker/mysql-agent/Dockerfile . - +push: build build-docker @docker login iad.ocir.io -u $(DOCKER_REGISTRY_USERNAME) -p '$(DOCKER_REGISTRY_PASSWORD)' @docker push $(REGISTRY)/$(TENANT)/mysql-operator:$(VERSION) @docker push $(REGISTRY)/$(TENANT)/mysql-agent:$(VERSION)