From bb80963f5cbbe7dac05b39d8eaf3a6bf278951f8 Mon Sep 17 00:00:00 2001 From: Dotty Dotter Date: Sun, 10 May 2026 13:31:58 +0200 Subject: [PATCH] scripts + gitignore: auto-deploy.sh ins Repo, backups/ und ._* ignorieren MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit scripts/auto-deploy.sh lebte bisher nur auf dem dev-Server unter /opt/gwoe-antragspruefer-dev/scripts/. Ohne Repo-Tracking war eine Aenderung des Skripts nicht versionierbar und ein Disaster-Recovery muehsam (manuelles Wiederherstellen aus Restic). .gitignore-Ergaenzungen: - backups/ — neu eingefuehrt mit dem 2.0-Cut + dem backup-db.sh-Fix, der jetzt projekt-relativ schreibt. Das Verzeichnis ist Daten-Volume, gehoert nicht ins Repo. - ._* — macOS-AppleDouble-Resource-Forks; tauchen auf wenn das Repo-Verzeichnis ueber AFP/SMB/Nextcloud-Sync gegangen ist. --- .gitignore | 5 +++++ scripts/auto-deploy.sh | 20 ++++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100755 scripts/auto-deploy.sh diff --git a/.gitignore b/.gitignore index f124ae5..03050b4 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,7 @@ venv/ # Data (persistent on server, not in repo) data/ reports/ +backups/ # IDE .idea/ @@ -17,6 +18,10 @@ reports/ # OS .DS_Store Thumbs.db +# macOS AppleDouble-Resource-Forks aus Nextcloud-/SMB-Sync — kein Code, +# tauchen aber als untracked auf wenn das Repo-Verzeichnis ueber AFP/SMB +# kopiert wurde. +._* site/ # Coverage reports (Phase 3 von #134, ADR 0007) diff --git a/scripts/auto-deploy.sh b/scripts/auto-deploy.sh new file mode 100755 index 0000000..b42b0fd --- /dev/null +++ b/scripts/auto-deploy.sh @@ -0,0 +1,20 @@ +#!/bin/bash +# Dev-Auto-Deploy: alle 5 Minuten via Cron. +# Pullt main aus dem Gitea-Repo und baut den Dev-Container neu wenn es Aenderungen gibt. +# Die Compose-Datei docker-compose.dev.yml liegt im Repo (main) — bleibt +# also nach `git reset --hard origin/main` erhalten. +set -euo pipefail +cd /opt/gwoe-antragspruefer-dev + +OLD_HEAD=$(git rev-parse HEAD) +git fetch origin main --quiet +NEW_HEAD=$(git rev-parse origin/main) + +if [ "$OLD_HEAD" = "$NEW_HEAD" ]; then + exit 0 # Nothing to do +fi + +echo "$(date -Iseconds) auto-deploy: $OLD_HEAD -> $NEW_HEAD" +git reset --hard origin/main >/dev/null +docker compose -f docker-compose.dev.yml up -d --build 2>&1 | tail -10 +echo "$(date -Iseconds) auto-deploy done"