Let a dispatched agent release to production without a workstation #73
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
A dispatched agent can tag a release, but it cannot deploy one.
deploy/deploy.shruns on a workstation: it needsdeploy/.env(which never leaves that machine) and an SSH route to the server's podman socket. An agent running as a Forgejo Actions job has neither. Measured from a job container inside the dind daemon — the host's sshd is unreachable by every route:host.containers.internal:22:22:22So the last step of a release needs the same inversion the dev stack already uses: the host watches and acts, rather than being pushed to.
The dev stack follows
:main. Production can follow:lateston exactly the same mechanism, because:latestmoves only on a version tag and never on a merge — that invariant already exists. PushingvX.Y.Zthen becomes the whole release, doable from a phone.Two things this has to get right:
deploy.sh vX.Y.Zhas to leave production on that version, or an emergency rollback from a workstation gets undone by the timer a minute later.Also: correct the reachability claim in
deploy/README.md,CLAUDE.mdandupdate.sh. It currently reads as "no route exists", which is too broad and invites someone to "fix" it withhost.containers.internal.