From 5b17f7e2c88be0f275bff834d651b4a3ea229685 Mon Sep 17 00:00:00 2001 From: "exe.dev user" Date: Wed, 29 Jul 2026 12:20:35 +0000 Subject: [PATCH] Wire CI/CD (Gitea Actions typecheck) and daily Postgres backup - .gitea/workflows/ci.yml runs pnpm typecheck on the already-registered forge-runner on push/PR to main - scripts/backup-db.sh + a systemd user timer (stock-app-backup.timer, daily) pg_dump the stocklist Postgres container to ~/backups, pruned to 14 days --- .gitea/workflows/ci.yml | 18 ++++++++++++++++++ scripts/backup-db.sh | 16 ++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 .gitea/workflows/ci.yml create mode 100755 scripts/backup-db.sh diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml new file mode 100644 index 0000000..afcce8a --- /dev/null +++ b/.gitea/workflows/ci.yml @@ -0,0 +1,18 @@ +name: CI + +on: + push: + branches: [main] + pull_request: + +jobs: + typecheck: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 22 + - run: corepack enable + - run: pnpm install --frozen-lockfile + - run: pnpm typecheck diff --git a/scripts/backup-db.sh b/scripts/backup-db.sh new file mode 100755 index 0000000..9a5d8f6 --- /dev/null +++ b/scripts/backup-db.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash +# Daily pg_dump of the stocklist Postgres container, run by the +# stock-app-backup systemd timer. Keeps the last 14 days of backups. +set -euo pipefail + +BACKUP_DIR="$HOME/backups/stocklist-postgres" +mkdir -p "$BACKUP_DIR" + +TIMESTAMP=$(date +%Y%m%d-%H%M%S) +OUT_FILE="$BACKUP_DIR/stocklist-$TIMESTAMP.sql.gz" + +docker exec stocklist-postgres pg_dump -U stocklist stocklist | gzip > "$OUT_FILE" + +find "$BACKUP_DIR" -name '*.sql.gz' -mtime +14 -delete + +echo "Backed up stocklist database to $OUT_FILE"