From 2e9716fa787a9f6bf3b6d16070c77a0cf0993951 Mon Sep 17 00:00:00 2001 From: Markus Frosch <markus.frosch@icinga.com> Date: Thu, 25 Apr 2019 10:39:07 +0200 Subject: [PATCH] Refactor Makefile to use CI variables directly Also set default so make build the official image names outside of CI. --- .gitlab-ci.yml | 4 ---- image.mk | 36 +++++++++++++++++------------------- 2 files changed, 17 insertions(+), 23 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9532dc4..91d3ae2 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -5,10 +5,6 @@ services: stages: - build -variables: - DOCKER_REGISTRY: ${CI_REGISTRY} - DOCKER_IMAGE_PREFIX: ${CI_PROJECT_PATH}/ - before_script: - docker info - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN ${CI_REGISTRY} diff --git a/image.mk b/image.mk index dff4daa..12b336d 100644 --- a/image.mk +++ b/image.mk @@ -1,42 +1,40 @@ -OS := debian - -IMAGE_PREFIX := ${DOCKER_IMAGE_PREFIX} -ifeq ($(IMAGE_PREFIX),) -IMAGE_PREFIX := icinga/debian/ +ifndef CI_REGISTRY +CI_REGISTRY := registry.icinga.com endif - -REGISTRY := ${DOCKER_REGISTRY} -ifneq ($(REGISTRY),) -IMAGE_PREFIX := $(REGISTRY)/$(IMAGE_PREFIX) +ifeq ($(CI_PROJECT_PATH),) +CI_PROJECT_PATH := build-docker/debian endif FROM := $(shell grep FROM Dockerfile | cut -d" " -f2) DIST := $(shell basename $$(dirname `pwd`)) VARIANT := $(shell basename `pwd`) -IMAGE := $(IMAGE_PREFIX)$(DIST):$(VARIANT) + +IMAGE := $(CI_PROJECT_PATH)/$(DIST) + +ifneq ($(CI_REGISTRY),) +IMAGE := $(CI_REGISTRY)/$(IMAGE) +endif ifeq ($(VARIANT),x86_64) -IMAGE_EXTRA := $(IMAGE_PREFIX)$(DIST):latest -else -IMAGE_EXTRA := +IMAGE_EXTRA_TAG := latest endif all: pull build pull: - docker pull "$(IMAGE)" || true + docker pull "$(IMAGE):$(VARIANT)" || true docker pull "$(FROM)" build: - docker build --cache-from "${IMAGE}" --tag "$(IMAGE)" . -ifneq ($(IMAGE_EXTRA),) - docker tag "$(IMAGE)" "$(IMAGE_EXTRA)" + docker build --cache-from "$(IMAGE):$(VARIANT)" --tag "$(IMAGE):$(VARIANT)" . +ifdef IMAGE_EXTRA_TAG + docker tag "$(IMAGE):$(VARIANT)" "$(IMAGE):$(IMAGE_EXTRA_TAG)" endif push: docker push "$(IMAGE)" -ifneq ($(IMAGE_EXTRA),) - docker push "$(IMAGE_EXTRA)" +ifdef IMAGE_EXTRA_TAG + docker push "$(IMAGE):$(IMAGE_EXTRA_TAG)" endif clean: -- GitLab