From 6b17d1d8e58809cd5b64e68bd24d37325f4a818a Mon Sep 17 00:00:00 2001 From: estebanthi Date: Sun, 19 Oct 2025 18:27:36 +0200 Subject: [PATCH] Docker build wf --- .gitea/workflows/docker-build-push.yml | 9 +- .../.gitea/workflows/docker-build-push.yml | 5 -- templates/docker-build-push.yml | 90 +++++++++++++++++++ 3 files changed, 91 insertions(+), 13 deletions(-) create mode 100644 templates/docker-build-push.yml diff --git a/.gitea/workflows/docker-build-push.yml b/.gitea/workflows/docker-build-push.yml index 80082db..5515295 100644 --- a/.gitea/workflows/docker-build-push.yml +++ b/.gitea/workflows/docker-build-push.yml @@ -8,14 +8,7 @@ name: Build external repo image on: - push: - branches: - - 'main' - tags: - - 'v*' - pull_request: - branches: - - 'main' + workflow_dispatch: env: REGISTRY_HOST: '{{ secrets.REGISTRY_HOST }}' diff --git a/examples/docker-build-push/.gitea/workflows/docker-build-push.yml b/examples/docker-build-push/.gitea/workflows/docker-build-push.yml index 80082db..2551c0b 100644 --- a/examples/docker-build-push/.gitea/workflows/docker-build-push.yml +++ b/examples/docker-build-push/.gitea/workflows/docker-build-push.yml @@ -11,11 +11,6 @@ on: push: branches: - 'main' - tags: - - 'v*' - pull_request: - branches: - - 'main' env: REGISTRY_HOST: '{{ secrets.REGISTRY_HOST }}' diff --git a/templates/docker-build-push.yml b/templates/docker-build-push.yml new file mode 100644 index 0000000..ab81e19 --- /dev/null +++ b/templates/docker-build-push.yml @@ -0,0 +1,90 @@ +# === Workflow Doc ========================================================= +# Name: Docker build +# Purpose: Build & push a Docker image +# Requires: +# - +# ========================================================================== + +name: Build external repo image + +on: + push: + branches: + - 'main' + tags: + - 'v*' + pull_request: + branches: + - 'main' + +env: + REGISTRY_HOST: {{ secrets.REGISTRY_HOST }} + REGISTRY_USERNAME: {{ secrets.REGISTRY_USERNAME }} + REGISTRY_PASSWORD: {{ secrets.REGISTRY_PASSWORD }} + IMAGE_NAME: "wavyzz/sample-image" + CONTEXT_PATH: "." + DOCKERFILE_PATH: "./Dockerfile" + +jobs: + build-and-push: + name: Build and Push Docker Image + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v5 + + - name: Define branch helpers + id: branch + run: | + DEFAULT="${{ gitea.event.repository.default_branch }}" + CURRENT="${{ gitea.ref_name }}" + if [ "$DEFAULT" = "$CURRENT" ]; then + echo "is_default_branch=true" >> $GITEA_OUTPUT + else + echo "is_default_branch=false" >> $GITEA_OUTPUT + fi + + - name: Extract Docker metadata + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ env.REGISTRY_HOST }}/${{ env.IMAGE_NAME }} + tags: | + type=ref,event=branch + type=ref,event=tag + type=sha + type=raw,value=latest,enable=${{ steps.branch.outputs.is_default_branch }} + labels: | + org.opencontainers.image.source=${{ gitea.event.repository.html_url }} + org.opencontainers.image.url=${{ gitea.event.repository.html_url }} + org.opencontainers.image.version=${{ gitea.event.repository.default_branch }} + + - name: Set up QEMU # for multi-platform builds + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx # for advanced builds + uses: docker/setup-buildx-action@v3 + + - name: Log in to registry + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY_HOST }} + username: ${{ env.REGISTRY_USERNAME }} + password: ${{ env.REGISTRY_PASSWORD }} + + - name: Build and push Docker image + uses: docker/build-push-action@v5 + with: + context: ${{ env.CONTEXT_PATH }} + file: ${{ env.DOCKERFILE_PATH }} + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + + - name: Image details + run: | + echo "Image pushed: ${{ env.REGISTRY_HOST }}/${{ env.IMAGE_NAME }}:${{ steps.meta.outputs.tags }}" + echo "Labels: ${{ steps.meta.outputs.labels }}" + echo "Tags: ${{ steps.meta.outputs.tags }}" + echo "Digest: ${{ steps.meta.outputs.digest }}"