From 36b1badc7e7cc073d462c9a35a391e9075b0a4a6 Mon Sep 17 00:00:00 2001 From: Sandro Date: Fri, 23 Oct 2026 23:03:33 +0200 Subject: [PATCH] add registry push --- .gitea/workflows/docker-test.yaml | 47 +++++++++++++++++++++++++++---- 1 file changed, 42 insertions(+), 5 deletions(-) diff --git a/.gitea/workflows/docker-test.yaml b/.gitea/workflows/docker-test.yaml index 2a131fc..4e4d2fe 100644 --- a/.gitea/workflows/docker-test.yaml +++ b/.gitea/workflows/docker-test.yaml @@ -1,9 +1,11 @@ -name: Docker Image Test +name: Docker Build, Test & Push on: push: branches: - main + tags: + - 'v*' paths: - 'dockerfile/**' - 'docker-compose.example.yaml' @@ -14,18 +16,34 @@ on: - main workflow_dispatch: +env: + REGISTRY: git.dsit.me + jobs: - build-and-test: - name: Build & Test PHP 8.5 Apache Image + build-test-push: + name: Build, Test & Push PHP 8.5 Apache Image runs-on: ubuntu-latest steps: - name: Checkout Repository uses: actions/checkout@v4 + - name: Set Image Metadata + id: meta + run: | + IMAGE_NAME=$(echo "${{ gitea.repository }}" | tr '[:upper:]' '[:lower:]') + SHORT_SHA=$(echo "${{ gitea.sha }}" | cut -c1-7) + echo "image=${REGISTRY}/${IMAGE_NAME}" >> "$GITEA_OUTPUT" + echo "sha_tag=${REGISTRY}/${IMAGE_NAME}:${SHORT_SHA}" >> "$GITEA_OUTPUT" + echo "latest_tag=${REGISTRY}/${IMAGE_NAME}:latest" >> "$GITEA_OUTPUT" + - name: Build Docker Image run: | - docker build -t webhost-test:ci ./dockerfile + docker build \ + -t webhost-test:ci \ + -t "${{ steps.meta.outputs.sha_tag }}" \ + -t "${{ steps.meta.outputs.latest_tag }}" \ + ./dockerfile - name: Start Container with Test ENV run: | @@ -193,9 +211,28 @@ jobs: echo "Rewrite Response: $REWRITE_RESP" echo "$REWRITE_RESP" | grep -q '"rewritten":true' - - name: Cleanup Container + - name: Login to Gitea Container Registry + if: success() && gitea.event_name != 'pull_request' + run: | + echo "${{ secrets.PACKAGE_TOKEN || secrets.GITEA_TOKEN || gitea.token }}" | \ + docker login "${REGISTRY}" -u "${{ gitea.actor }}" --password-stdin + + - name: Push Docker Image to Gitea Registry + if: success() && gitea.event_name != 'pull_request' + run: | + docker push "${{ steps.meta.outputs.sha_tag }}" + docker push "${{ steps.meta.outputs.latest_tag }}" + + if [ "${{ gitea.ref_type }}" = "tag" ]; then + TAG_IMAGE="${{ steps.meta.outputs.image }}:${{ gitea.ref_name }}" + docker tag webhost-test:ci "${TAG_IMAGE}" + docker push "${TAG_IMAGE}" + fi + + - name: Cleanup Test Container if: always() run: | echo "--- Container Logs ---" docker logs webhost-test || true docker rm -f webhost-test || true + docker logout "${REGISTRY}" 2>/dev/null || true