From 369ff57b50f9ca4f1451d4131aad1bfe707b69d1 Mon Sep 17 00:00:00 2001 From: Andre Miras Date: Fri, 27 Sep 2024 23:10:18 +0200 Subject: [PATCH] :construction_worker: Docker workflow fixes - fix `github.ref` for DockerHub publish on push to develop - fix docker login to handle special characters in the token - publish docker tag to DockerHub on git tagging --- .github/workflows/docker.yml | 13 +++++++++++-- Makefile | 8 ++++++-- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index bd918a9c74..4912e6205c 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -5,6 +5,8 @@ on: push: branches: - develop + tags: + - "*" pull_request: jobs: @@ -14,11 +16,18 @@ jobs: - uses: actions/checkout@v4 - uses: docker/setup-buildx-action@v3 - run: make docker/build + - name: docker login + if: github.ref == 'refs/heads/develop' || startsWith(github.ref, 'refs/tags/') env: DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + run: make docker/login - name: docker push - if: github.ref == 'develop' + if: github.ref == 'refs/heads/develop' + run: make docker/push + run: echo make docker/push + - name: docker push (tag) + if: startsWith(github.ref, 'refs/tags/') run: | - make docker/login + make docker/tag DOCKER_TAG=${GITHUB_REF#refs/tags/} make docker/push diff --git a/Makefile b/Makefile index 2cf08b7537..67d71e7bcb 100644 --- a/Makefile +++ b/Makefile @@ -4,6 +4,7 @@ TOX=`which tox` ACTIVATE=$(VIRTUAL_ENV)/bin/activate PYTHON=$(VIRTUAL_ENV)/bin/python DOCKER_IMAGE=kivy/python-for-android +DOCKER_TAG=latest ANDROID_SDK_HOME ?= $(HOME)/.android/android-sdk ANDROID_NDK_HOME ?= $(HOME)/.android/android-ndk ANDROID_NDK_HOME_LEGACY ?= $(HOME)/.android/android-ndk-legacy @@ -118,10 +119,13 @@ docker/build: docker build --cache-from=$(DOCKER_IMAGE) --tag=$(DOCKER_IMAGE) . docker/login: - @echo $(DOCKERHUB_TOKEN) | docker login --username $(DOCKERHUB_USERNAME) --password-stdin + @echo $$DOCKERHUB_TOKEN | docker login --username $(DOCKERHUB_USERNAME) --password-stdin + +docker/tag: + docker tag $(DOCKER_IMAGE):latest $(DOCKER_IMAGE):$(DOCKER_TAG) docker/push: - docker push $(DOCKER_IMAGE) + docker push $(DOCKER_IMAGE):$(DOCKER_TAG) docker/run/test: docker/build docker run --rm --env-file=.env $(DOCKER_IMAGE) 'make test'