ci: push Docker image to container registry
Update the CI pipeline file and Makefile to push the Docker image on tagged releases. Part of dananglin/pleroma-ansible-playbook#14
This commit is contained in:
parent
0cedf15ad9
commit
ed709517c0
2 changed files with 27 additions and 11 deletions
|
@ -1,18 +1,17 @@
|
||||||
---
|
---
|
||||||
stages:
|
stages:
|
||||||
- test
|
- test
|
||||||
|
- publish
|
||||||
|
|
||||||
.use-python:
|
.use-python:
|
||||||
image: python:3.7.6-slim-buster
|
image: python:3.7.6-slim-buster
|
||||||
|
|
||||||
.docker-dind-service:
|
.docker-build-setup:
|
||||||
|
image: docker:19.03.8
|
||||||
services:
|
services:
|
||||||
- docker:19.03.8-dind
|
- docker:19.03.8-dind
|
||||||
|
|
||||||
.use-docker:
|
.install-make: &install-make
|
||||||
image: docker:19.03.8
|
|
||||||
|
|
||||||
.install-deps: &install-deps
|
|
||||||
- apk add --no-cache make
|
- apk add --no-cache make
|
||||||
|
|
||||||
test:dockerfile-lint:
|
test:dockerfile-lint:
|
||||||
|
@ -29,11 +28,9 @@ test:dockerfile-lint:
|
||||||
- master
|
- master
|
||||||
|
|
||||||
test:docker-image-build:
|
test:docker-image-build:
|
||||||
extends:
|
extends: .docker-build-setup
|
||||||
- .docker-dind-service
|
|
||||||
- .use-docker
|
|
||||||
script:
|
script:
|
||||||
- *install-deps
|
- *install-make
|
||||||
- make image
|
- make image
|
||||||
stage: test
|
stage: test
|
||||||
only:
|
only:
|
||||||
|
@ -61,3 +58,18 @@ test:custom-modules:
|
||||||
except:
|
except:
|
||||||
refs:
|
refs:
|
||||||
- master
|
- 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}
|
||||||
|
|
8
Makefile
8
Makefile
|
@ -5,8 +5,9 @@ PLAYBOOK_FILE ?= "playbook.yml"
|
||||||
DOCKERFILE = Dockerfile
|
DOCKERFILE = Dockerfile
|
||||||
IMAGE_NAME ?= pleroma-ansible-playbook
|
IMAGE_NAME ?= pleroma-ansible-playbook
|
||||||
IMAGE_TAG ?= latest
|
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
|
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
|
@find ./library -mindepth 1 -maxdepth 1 -type f -name test_*.py | xargs python3
|
||||||
|
|
||||||
image:
|
image:
|
||||||
@docker build -f $(DOCKERFILE) -t $(IMAGE_NAME):$(IMAGE_TAG) .
|
@docker build -f $(DOCKERFILE) -t $(DOCKER_IMAGE) .
|
||||||
|
|
||||||
|
publish: image
|
||||||
|
@docker push $(DOCKER_IMAGE)
|
||||||
|
|
||||||
pleroma:
|
pleroma:
|
||||||
ansible-playbook --inventory $(INVENTORY) --tags $(PLAYBOOK_TAGS) $(EXTRA_ARGS) $(PLAYBOOK_FILE)
|
ansible-playbook --inventory $(INVENTORY) --tags $(PLAYBOOK_TAGS) $(EXTRA_ARGS) $(PLAYBOOK_FILE)
|
||||||
|
|
Reference in a new issue