You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|**Zero-downtime deploy**|`pm2 reload` + atomic symlink swap (`current → release-timestamp`) |App stays up during deployment; rollback is a symlink change|
|**Auto-rollback**|`deploy.sh` keeps previous release; restores on failure | No manual intervention if deploy breaks the app |
30
30
|**Automatic versioning**|`bump-version` job creates `v1.x.x` tags on every merge to main | Release history is automatic; no manual tagging |
31
-
|**Health check monitoring**| Scheduled workflow every 5 min; creates a GitHub Issue on failure | On-call alert without a third-party service|
31
+
|**Health check monitoring**| Scheduled workflow runs hourly and reuses one open health-check issue while an outage is active | Avoids duplicate alert noise and keeps incident state readable|
32
32
|**Separate CI / CD workflows**|`ci.yml` + `release.yml` split by tag trigger | CD only runs on verified, tagged builds — not every push |
33
33
34
34
---
@@ -50,7 +50,7 @@ Triggers: new tag matching `v*`
50
50
2.**`create-release`**: publishes GitHub Release with tag name
51
51
52
52
### `health-check.yml` — Uptime Monitoring
53
-
Runs every 5 minutes. Hits `/api/health`. Creates a GitHub Issue if the check fails.
53
+
Runs hourly. Hits `/api/health` for configured environments. If a check fails, the workflow creates one health-check issue or comments on the existing open issue instead of creating duplicates.
0 commit comments