Adds a `publish` job to ci.yml that fires only on green pushes to main. It builds broker, server, and frontend from images/*.Dockerfile, tags each with :main-<sha> + :latest, and pushes to the fleet registry at redclaw-web-01:5000 (via its Tailscale IP 100.94.185.103, which the daemons already trust in insecure-registries). Adds a small systemd oneshot + 1-minute timer for gw-04 that polls :latest of each service, pulls on drift, retags to the un-prefixed name the current compose file uses, and rolls only the changed services. The retag keeps /root/clawmates/docker-compose.yml unchanged for now — a follow-up can migrate the compose file to registry-prefixed names once we're confident. End-to-end: push to main -> tests -> images pushed -> gw-04 timer pulls within ~1 min -> prod updated. Rollback = docker tag <old-sha> :latest and `docker compose up -d`.
12 lines
186 B
SYSTEMD
12 lines
186 B
SYSTEMD
[Unit]
|
|
Description=Clawmates rolling deploy — every minute
|
|
|
|
[Timer]
|
|
OnBootSec=2min
|
|
OnUnitActiveSec=1min
|
|
AccuracySec=15s
|
|
Unit=clawmates-deploy.service
|
|
|
|
[Install]
|
|
WantedBy=timers.target
|