ci: switch deploy+smoke jobs to self-hosted runner (peptide-vps) [v1.7.1] #21
Reference in New Issue
Block a user
Delete Branch "claude/deploy-self-hosted-20260617"
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?
What changed
Switch the three deploy/smoke runner targets from
ubuntu-latest(GitHub-hosted) to[self-hosted, peptide-vps](org runner on KVM8 VPS):.github/workflows/deploy-app.ymldeploy-stagingubuntu-latest[self-hosted, peptide-vps].github/workflows/deploy-app.ymldeploy-productionubuntu-latest[self-hosted, peptide-vps].github/workflows/smoke.ymlsmokeubuntu-latest[self-hosted, peptide-vps]Why
smoke.ymlwas also changed: Thesmokejob indeploy-app.ymlis auses:delegation topeptide-e2e/.github/workflows/smoke.yml@main— it has noruns-onof its own. The runner is defined insidesmoke.ymlat the innersmokejob. Changingdeploy-app.ymlalone would have left the Playwright wp-login POSTs (the throttled path) running from GitHub-hosted IPs.Callers' CI/validate jobs are not changed — they remain on
ubuntu-latest.Why
The KVM8 VPS runner (
peptide-vps, org:peptide-repo) has a stable IP that is not in the Azure eastus2/ncus ranges that Hostinger blocks on SSH port 65002. The GitHub-hosted runner IP lottery has caused intermittent 4× retry exhaustion on every deploy. This is the transport fix from ADR2026-06-16-standardized-cicd-and-testing.md.Risk flags
peptide-vpsgoes offline, all deploys queue (no fallback to GitHub-hosted). Mitigation: runner is systemd-supervised; Coolify on same box is the health signal.runs-onvalues touched. Rsync commands, retry logic, secrets, steps — all identical.Test plan
After merge: trigger a low-stakes app deploy (e.g.,
peptide-repo-corepatch) and confirm:deploy-stagingjob picks up onpeptide-vps(check Actions runner label in job log)peptide-vps(same runner label)deploy-productionjob picks up onpeptide-vpsBumps peptide-e2e to v1.7.1.