From f3bb670685822c7a12a4753016981462f6503847 Mon Sep 17 00:00:00 2001 From: Sandro Date: Sat, 24 Oct 2026 01:22:01 +0200 Subject: [PATCH] Add scheduled weekly build for upstream updates --- .gitea/workflows/docker-test.yaml | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/docker-test.yaml b/.gitea/workflows/docker-test.yaml index 9793fb9..b8cefc7 100644 --- a/.gitea/workflows/docker-test.yaml +++ b/.gitea/workflows/docker-test.yaml @@ -5,6 +5,9 @@ on: branches-ignore: - main - default + schedule: + # Wöchentlich jeden Montag um 03:00 Uhr UTC (für Upstream-Updates) + - cron: '0 3 * * 1' workflow_dispatch: # ============================================================================== @@ -16,6 +19,9 @@ env: REGISTRY_USER: "sandrodach" CUSTOM_IMAGE_NAME: "container/webhost" + # Welcher Branch soll beim automatischen Cron-Lauf (schedule) gebaut werden? + SCHEDULED_BRANCH: "8.5" + # Pfad zum Build-Kontext und Dockerfile BUILD_CONTEXT: ./dockerfile DOCKERFILE: ./dockerfile/Dockerfile @@ -44,17 +50,32 @@ env: jobs: build-test-push: - name: Build, Test & Push (${{ gitea.ref_name }}) + name: Build, Test & Push (${{ gitea.event_name == 'schedule' && env.SCHEDULED_BRANCH || gitea.ref_name }}) runs-on: ubuntu-latest - if: gitea.ref_name != 'main' && gitea.ref_name != 'default' + if: (gitea.ref_name != 'main' && gitea.ref_name != 'default') || gitea.event_name == 'schedule' steps: - name: Checkout Repository uses: actions/checkout@v4 + - name: Switch to Target Branch on Schedule + if: gitea.event_name == 'schedule' + run: | + TARGET="${SCHEDULED_BRANCH:-8.5}" + echo "Schedule Trigger aktiv: Wechsle zu Branch '${TARGET}'..." + git fetch origin "${TARGET}" + git checkout "${TARGET}" + - name: Prepare Image Tag from Branch id: meta run: | + if [ "${{ gitea.event_name }}" = "schedule" ]; then + RAW_BRANCH="${SCHEDULED_BRANCH:-8.5}" + echo "Schedule Event: Verwende Branch '${RAW_BRANCH}'" + else + RAW_BRANCH="${{ gitea.ref_name }}" + fi + if [ -n "${CUSTOM_IMAGE_NAME}" ]; then IMAGE_REPO=$(echo "${CUSTOM_IMAGE_NAME}" | tr '[:upper:]' '[:lower:]') else @@ -62,7 +83,7 @@ jobs: fi # Branch-Namen als Docker-Tag nutzen (Schrägstriche durch Bindestriche ersetzen) - BRANCH_TAG=$(echo "${{ gitea.ref_name }}" | sed 's/[^a-zA-Z0-9._-]/-/g') + BRANCH_TAG=$(echo "${RAW_BRANCH}" | sed 's/[^a-zA-Z0-9._-]/-/g') FULL_TAG="${REGISTRY}/${IMAGE_REPO}:${BRANCH_TAG}" echo "Target Image Tag: ${FULL_TAG}" @@ -71,6 +92,8 @@ jobs: - name: Build Docker Image run: | docker build \ + --pull \ + --no-cache \ -f "${DOCKERFILE}" \ -t "${{ steps.meta.outputs.image_tag }}" \ "${BUILD_CONTEXT}"