furtka/website/deploy-ci.sh
Daniel Maksymilian Syrnicki 9fd9d1b7d1
All checks were successful
CI / lint (push) Successful in 25s
CI / test (push) Successful in 1m38s
CI / validate-json (push) Successful in 24s
CI / markdown-links (push) Successful in 15s
Deploy site / deploy (push) Successful in 4s
Build ISO / build-iso (push) Successful in 18m59s
ci: stop ops/** from triggering the ISO build; hand site trees back to the VM user after CI deploy
The runner job runs as root, which left /srv/furtka-site and
/var/www/furtka.org root-owned and broke the manual deploy.sh path.
Runner capacity on forge-runner-01 raised to 2 alongside this, so the
site deploy no longer queues behind an ISO build.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MScAinbyMdeNc7H2BZdnnG
2026-08-26 13:12:16 +02:00

33 lines
1.1 KiB
Bash
Executable file

#!/usr/bin/env bash
# Auto-deploy path run by .forgejo/workflows/deploy-site.yml inside the
# self-hosted runner — which is forge-runner-01, the actual web server.
# Same effect as deploy.sh but without the SSH hop: everything is local.
#
# Requires `rsync` and `hugo` on PATH. The workflow apk-installs both
# before invoking this script.
set -euo pipefail
HERE="$(cd "$(dirname "$0")" && pwd)"
SRCROOT="${FURTKA_SRCROOT:-/srv/furtka-site}"
WEBROOT="${FURTKA_WEBROOT:-/var/www/furtka.org}"
echo "==> rsync website/ → $SRCROOT"
rsync -az --delete \
--exclude='.hugo_build.lock' \
--exclude='public/' \
--exclude='resources/' \
--exclude='deploy.sh' \
--exclude='deploy-ci.sh' \
"$HERE/" "$SRCROOT/"
echo "==> hugo build → $WEBROOT"
cd "$SRCROOT"
hugo --minify --cleanDestinationDir -d "$WEBROOT"
# The runner job runs as root inside the container; hand the trees back
# to the VM user so the manual deploy.sh path keeps working afterwards.
if [ "$(id -u)" = 0 ]; then
chown -R "${FURTKA_OWNER:-1000:1000}" "$SRCROOT" "$WEBROOT"
fi
echo "OK: deployed to https://furtka.org/"