From a21ce0d90e511cea61e8b5ccbdff144fab365ee9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?= Date: Fri, 15 Jun 2018 11:45:49 +0200 Subject: [PATCH] Squashed '.makefiles/' changes from a75ba69..6c47840 6c47840 Updated makefiles from senpy 625549c Do not push image tag for latest b3318c0 Updated makefiles from senpy 8453e8b Fix problems with echo and newlines 083c8c9 Updated makefiles from senpy-plugins-community git-subtree-dir: .makefiles git-subtree-split: 6c47840f216bb641886da57e1e98ccf5df0285d7 --- docker.mk | 24 +++++++++++++++++++++++- git.mk | 2 +- k8s.mk | 2 +- python.mk | 8 ++++---- 4 files changed, 29 insertions(+), 7 deletions(-) diff --git a/docker.mk b/docker.mk index f74d93f..9c1a8cd 100644 --- a/docker.mk +++ b/docker.mk @@ -1,5 +1,14 @@ -IMAGENAME?=$(NAME) +ifndef IMAGENAME + ifdef CI_REGISTRY_IMAGE + IMAGENAME=$(CI_REGISTRY_IMAGE) + else + IMAGENAME=$(NAME) + endif +endif + IMAGEWTAG?=$(IMAGENAME):$(VERSION) +DOCKER_FLAGS?=$(-ti) +DOCKER_CMD?= docker-login: ## Log in to the registry. It will only be used in the server, or when running a CI task locally (if CI_BUILD_TOKEN is set). ifeq ($(CI_BUILD_TOKEN),) @@ -19,6 +28,19 @@ else @docker logout endif +docker-run: ## Build a generic docker image + docker run $(DOCKER_FLAGS) $(IMAGEWTAG) $(DOCKER_CMD) + +docker-build: ## Build a generic docker image + docker build . -t $(IMAGEWTAG) + +docker-push: docker-login ## Push a generic docker image + docker push $(IMAGEWTAG) + +docker-latest-push: docker-login ## Push the latest image + docker tag $(IMAGEWTAG) $(IMAGENAME) + docker push $(IMAGENAME) + login:: docker-login clean:: docker-clean diff --git a/git.mk b/git.mk index 836eb14..ac5eaad 100644 --- a/git.mk +++ b/git.mk @@ -14,7 +14,7 @@ push-github: ## Push the code to github. You need to set up GITHUB_DEPLOY_KEY ifeq ($(GITHUB_DEPLOY_KEY),) else $(eval KEY_FILE := "$(shell mktemp)") - @echo "$(GITHUB_DEPLOY_KEY)" > $(KEY_FILE) + @printf '%b' '$(GITHUB_DEPLOY_KEY)' > $(KEY_FILE) @git remote rm github-deploy || true git remote add github-deploy $(GITHUB_REPO) -@GIT_SSH_COMMAND="ssh -i $(KEY_FILE)" git fetch github-deploy $(CI_COMMIT_REF_NAME) diff --git a/k8s.mk b/k8s.mk index a493b4a..4c6f760 100644 --- a/k8s.mk +++ b/k8s.mk @@ -13,7 +13,7 @@ KUBE_CA_TEMP=false ifndef KUBE_CA_PEM_FILE KUBE_CA_PEM_FILE:=$$PWD/.ca.crt -CREATED:=$(shell echo -e "$(KUBE_CA_BUNDLE)" > $(KUBE_CA_PEM_FILE)) +CREATED:=$(shell printf '%b\n' '$(KUBE_CA_BUNDLE)' > $(KUBE_CA_PEM_FILE)) endif KUBE_TOKEN?="" KUBE_NAMESPACE?=$(NAME) diff --git a/python.mk b/python.mk index 2ad9559..3679d7b 100644 --- a/python.mk +++ b/python.mk @@ -26,9 +26,10 @@ Dockerfile-%: Dockerfile.template ## Generate a specific dockerfile (e.g. Docke quick_build: $(addprefix build-, $(PYMAIN)) build: $(addprefix build-, $(PYVERSIONS)) ## Build all images / python versions + docker tag $(IMAGEWTAG)-python$(PYMAIN) $(IMAGEWTAG) build-%: version Dockerfile-% ## Build a specific version (e.g. build-2.7) - docker build -t '$(IMAGEWTAG)-python$*' --cache-from $(IMAGENAME):python$* -f Dockerfile-$* .; + docker build -t '$(IMAGEWTAG)-python$*' -f Dockerfile-$* .; dev-%: ## Launch a specific development environment using docker (e.g. dev-2.7) @docker start $(NAME)-dev$* || (\ @@ -42,10 +43,10 @@ dev: dev-$(PYMAIN) ## Launch a development environment using docker, using the d quick_test: test-$(PYMAIN) -test-%: ## Run setup.py from in an isolated container, built from the base image. (e.g. test-2.7) +test-%: build-% ## Run setup.py from in an isolated container, built from the base image. (e.g. test-2.7) # This speeds tests up because the image has most (if not all) of the dependencies already. docker rm $(NAME)-test-$* || true - docker create -ti --name $(NAME)-test-$* --entrypoint="" -w /usr/src/app/ $(IMAGENAME):python$* python setup.py test + docker create -ti --name $(NAME)-test-$* --entrypoint="" -w /usr/src/app/ $(IMAGEWTAG)-python$* python setup.py test docker cp . $(NAME)-test-$*:/usr/src/app docker start -a $(NAME)-test-$* @@ -77,7 +78,6 @@ push-latest: $(addprefix push-latest-,$(PYVERSIONS)) ## Push the "latest" tag to docker tag '$(IMAGEWTAG)-python$(PYMAIN)' '$(IMAGEWTAG)' docker tag '$(IMAGEWTAG)-python$(PYMAIN)' '$(IMAGENAME)' docker push '$(IMAGENAME):latest' - docker push '$(IMAGEWTAG)' push-latest-%: build-% ## Push the latest image for a specific python version docker tag $(IMAGENAME):$(VERSION)-python$* $(IMAGENAME):python$*