landingpage-go/.forgejo/workflows/deploy.yml
Oliver Giertz 4376918e73
All checks were successful
Deploy go.vanityontour.de / deploy (push) Successful in 22s
Deploy von GitHub Actions auf Forgejo Actions umgestellt
Die Seite liegt seit dem Shlink-Umzug nicht mehr auf dem Hetzner-Server,
sondern als Container-Volume unter /docker/shlink/landingpage auf dem
Hostinger-VPS. Der alte Workflow htte weiter ins Leere deployed.

Der neue Workflow laeuft auf dem act_runner, der ohnehin auf dem Zielhost
steht, und mountet das Zielverzeichnis direkt in den Job-Container. Damit
entfaellt der SSH-Umweg und ein Deploy-Key als Secret.

.github/workflows/ wird entfernt, weil Forgejo Actions dieses Verzeichnis
ebenfalls auswertet und der alte Job dort scheitern wuerde.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-27 09:12:36 +02:00

45 lines
1.3 KiB
YAML

name: Deploy go.vanityontour.de
on:
push:
branches: [main]
workflow_dispatch:
jobs:
deploy:
runs-on: alpine
container:
image: node:20-alpine
# Das Zielverzeichnis liegt auf demselben Host wie der Runner und wird
# vom nginx-Container des Shlink-Stacks read-only gelesen. Direktes
# Mounten spart den Umweg ueber SSH und damit einen Deploy-Key.
# Freigegeben in /docker/act_runner/config.yaml (valid_volumes).
volumes:
- /docker/shlink/landingpage:/target
steps:
- name: rsync bereitstellen
run: apk add --no-cache rsync
- name: Checkout
uses: actions/checkout@v4
- name: Deploy
run: |
rsync -a --delete \
--exclude '.git/' \
--exclude '.github/' \
--exclude '.forgejo/' \
--exclude '.claude/' \
--exclude '*.md' \
./ /target/
echo "Deployed:"
ls -la /target
- name: Smoke-Test
run: |
apk add --no-cache curl
for path in / /assets/css/style.css /robots.txt; do
code=$(curl -s -o /dev/null -w '%{http_code}' "https://go.vanityontour.de${path}")
echo " ${path} -> ${code}"
[ "$code" = "200" ] || exit 1
done