Pre-launch — Gluecron is in final validation. Public signups and git hosting for non-owner users open after launch review.
Commitc3e8edaunknown_key

Merge PR #40: skip auto-rollback on manual workflow_dispatch

Merge PR #40: skip auto-rollback on manual workflow_dispatch

fix(deploy): rollback skip on manual dispatch + softer rollback</title>
<parameter name="body">The auto-rollback was masking real failures by reverting to a known-broken previous SHA, then failing on systemctl status of the broken-after-rollback service. Two changes:

1. Skip rollback on workflow_dispatch (manual runs) so an operator can diagnose new code on the box before reverting.
2. script_stop:false + '|| true' on the post-rollback systemctl status so a broken pre-rollback state doesn't cascade into rollback-step failure.

Net: rollback only fires for normal pushes, and even then it's softer.</parameter>
</invoke>
CC LABS App committed on May 3, 2026Parents: f308f22 1caf3ca
1 file changed+84c3e8eda01b096f552e44d4f152b8fcd51054e3cc
1 changed file+8−4
Modified.github/workflows/vultr-deploy.yml+8−4View fileUnifiedSplit
9090 exit 1
9191
9292 # ─── 4. Auto-rollback on smoke failure ──────────────────────────────
93 # Only rolls back if the workflow was triggered by a normal push.
94 # Manual workflow_dispatch runs SKIP rollback so the operator can
95 # diagnose the new code on the box before reverting. This stops the
96 # pathological case where rollback masks the real failure by reverting
97 # to an already-broken previous SHA.
9398 - name: Rollback on failure
94 if: failure() && steps.smoke.conclusion == 'failure'
99 if: failure() && steps.smoke.conclusion == 'failure' && github.event_name == 'push'
95100 uses: appleboy/ssh-action@v1.2.0
96101 with:
97102 host: ${{ secrets.VULTR_HOST }}
98103 username: ${{ secrets.VULTR_USER }}
99104 key: ${{ secrets.VULTR_SSH_KEY }}
100 script_stop: true
105 script_stop: false
101106 script: |
102 set -euo pipefail
103107 cd /opt/gluecron
104108 prev=$(cat /tmp/gluecron_prev_sha)
105109 echo "Rolling back to $prev"
106110 git reset --hard "$prev"
107111 systemctl restart gluecron
108112 sleep 5
109 systemctl status gluecron --no-pager | head -20
113 systemctl status gluecron --no-pager | head -20 || true
110114
111115 # ─── 5. Failure diagnostics — captured into a file for summary + AI ──
112116 - name: Capture failure context
113117