diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1a3703b..82869f1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,18 +1,17 @@ --- stages: - test +- publish .use-python: image: python:3.7.6-slim-buster -.docker-dind-service: +.docker-build-setup: + image: docker:19.03.8 services: - docker:19.03.8-dind -.use-docker: - image: docker:19.03.8 - -.install-deps: &install-deps +.install-make: &install-make - apk add --no-cache make test:dockerfile-lint: @@ -29,11 +28,9 @@ test:dockerfile-lint: - master test:docker-image-build: - extends: - - .docker-dind-service - - .use-docker + extends: .docker-build-setup script: - - *install-deps + - *install-make - make image stage: test only: @@ -61,3 +58,18 @@ test:custom-modules: except: refs: - master + +publish:docker-image: + extends: .docker-build-setup + before_script: + - docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY} + after_script: + - docker logout ${CI_REGISTRY} + script: + - *install-make + - make publish + only: + - /^v[0-9]+(.[0-9]+){2}$/ + variables: + IMAGE_NAME: ${CI_REGISTRY}/${CI_PROJECT_PATH} + IMAGE_TAG: ${CI_COMMIT_REF_NAME} diff --git a/Makefile b/Makefile index 51f70d7..c9ca131 100644 --- a/Makefile +++ b/Makefile @@ -5,8 +5,9 @@ PLAYBOOK_FILE ?= "playbook.yml" DOCKERFILE = Dockerfile IMAGE_NAME ?= pleroma-ansible-playbook IMAGE_TAG ?= latest +DOCKER_IMAGE = $(IMAGE_NAME):$(IMAGE_TAG) -PHONY: secret_key_base signing_salt vapid_private_key vapid_public_key test_modules_unit image pleroma +PHONY: secret_key_base signing_salt vapid_private_key vapid_public_key test_modules_unit image publish pleroma all: secret_key_base signing_salt vapid_key_pair @@ -35,7 +36,10 @@ test_modules_unit: @find ./library -mindepth 1 -maxdepth 1 -type f -name test_*.py | xargs python3 image: - @docker build -f $(DOCKERFILE) -t $(IMAGE_NAME):$(IMAGE_TAG) . + @docker build -f $(DOCKERFILE) -t $(DOCKER_IMAGE) . + +publish: image + @docker push $(DOCKER_IMAGE) pleroma: ansible-playbook --inventory $(INVENTORY) --tags $(PLAYBOOK_TAGS) $(EXTRA_ARGS) $(PLAYBOOK_FILE)