Commit Graph

10 Commits

Author SHA1 Message Date
haemka 84ef10b88e Force IPv4 for git.haemka.in SSH connections too
Missed two spots: the git.haemka.in keyscan and the submodule fetch's
GIT_SSH_COMMAND. If git.haemka.in's DNS answer includes an AAAA record
(depends on which resolver the runner hits), these hit the same no
IPv6 route issue intermittently, explaining the flaky failures.
2026-08-14 16:54:34 +00:00
haemka 02d660416a Force IPv4 for SSH connections to the deploy host
aquaria.haemka.net has both A and AAAA records; the runner container has
no IPv6 route, so ssh picked the AAAA address and failed with 'Network
is unreachable'. Force -4 on both the keyscan and the actual rsync
connection.
2026-08-14 16:54:34 +00:00
haemka ae61b01a07 Stop suppressing ssh-keyscan stderr in Set up SSH key step
The step failed silently (exit 1, no message) because stderr was
redirected to /dev/null while sh -e aborts on ssh-keyscan's non-zero
exit. Let the real error (DNS/firewall/etc.) show up in the log.
2026-08-14 16:54:34 +00:00
haemka 03ee6d0f78 Revert DEPLOY_USER back to a secret
Only host/port were asked to move to variables; user stays a secret.
2026-08-14 16:54:34 +00:00
haemka 3bacfbf40f Move deploy host/port/user/path to repo variables, split port out
None of these are sensitive, so use Actions variables (vars) instead of
secrets. DEPLOY_PORT is now its own variable (default 22) rather than
being packed into DEPLOY_HOST. Only DEPLOY_SSH_KEY remains a secret.
2026-08-14 16:54:34 +00:00
haemka e96fd2d95b Support non-standard SSH port in DEPLOY_HOST (fqdn:port)
ssh-keyscan and rsync's -e ssh both need the port passed via -p rather
than embedded in the hostname; parse DEPLOY_HOST accordingly, defaulting
to 22 when no port is given.
2026-08-14 16:54:34 +00:00
haemka ca521657f8 Use SSH deploy key instead of account token for theme submodule
Avoids tying CI to a personal/bot Gitea account: the same DEPLOY_SSH_KEY
secret used for the webserver rsync step is reused as a read-only Gitea
deploy key on hmk/pelican-latex. The submodule's tracked HTTPS URL is
overridden to SSH just for this checkout so it authenticates with that
key instead of needing a token with access to both repos.
2026-08-14 16:54:33 +00:00
haemka 7255a71dca Pass explicit token to checkout for private theme submodule
The default per-job Actions token only covers the triggering repo; the
theme submodule lives in a separate private repo (hmk/pelican-latex), so
cloning it needs a token with read access to both. Add CHECKOUT_TOKEN
as a repo secret (a Gitea access token with repo read scope) for this
to work.
2026-08-14 16:54:33 +00:00
haemka 887d97b5bb Install nodejs in workflow container so actions/checkout can run
python:3.12-slim has no Node.js; JS-based actions like actions/checkout
need it to execute their bundled dist/index.js.
2026-08-14 16:54:33 +00:00
haemka 64026a3d7a Add Gitea Actions workflow to build and deploy the site
Requires a self-hosted runner and repo secrets (DEPLOY_HOST, DEPLOY_USER,
DEPLOY_PATH, DEPLOY_SSH_KEY) to be set up before it will actually run.
2026-08-14 16:54:33 +00:00