The gap between "deployed" and "works"
Static-site pipelines report success when files land on the CDN — not when the site serves correctly. A misconfigured redirect rule, an expired certificate nobody noticed, or a build that silently dropped a page all pass the deploy step green. For static sites especially, "the upload finished" and "the site works" are different questions.
A post-deploy smoke test closes that gap: one job that hits your live URL right after every release and fails loudly if anything is wrong.
The workflow
Two steps, no secrets, no third-party service. Save as .github/workflows/post-deploy.yml:
name: Post-deploy smoke test
on:
deployment_status: # runs on real deploys (Vercel/Cloudflare/etc.)
states: [success]
workflow_dispatch: # also runnable manually
jobs:
smoke:
if: github.event_name == 'workflow_dispatch' || github.event.deployment_status.state == 'success'
runs-on: ubuntu-latest
steps:
- name: Site responds
uses: mahope/deskuptime@v1
with:
url: https://your-site.com
- name: Compliance intact
uses: mahope/compliance-site-check@v2
with:
url: https://your-site.com
Replace your-site.com with your domain. Both steps are pinned to floating major tags so fixes arrive automatically without breaking changes.
What each step checks
deskuptime@v1
A dependency-free uptime check: fetches the URL and fails the step if the page does not respond as expected. Zero npm installs, zero config files — the whole action is a single YAML step you can read in ten seconds.
compliance-site-check@v2
Runs nine GDPR/EAA-oriented checks against the live page: security headers, privacy-policy reachability, cookie-consent signals, and more. If a redesign quietly dropped the consent banner, this step turns red before your lawyer does.
Add a daily schedule (optional)
The same file doubles as a daily monitor — add a cron trigger:
on:
deployment_status:
states: [success]
schedule:
- cron: '0 6 * * *' # daily at 06:00 UTC
workflow_dispatch:
Now a certificate expiry or host outage surfaces in the same Actions tab your team already watches — instead of an email digest from yet another SaaS dashboard nobody logs into.
What it replaces
Uptime-monitoring SaaS starts around $10–15/month per site, and compliance audits run $2,000–10,000 per engagement. Neither catches regressions between check-ins. This setup runs continuously on infrastructure you already have: free for public repositories, included minutes for private ones.
Try the compliance half right now
No repo needed to see what the scanner finds on your live site — free, no signup, results in about a minute.
Scan your site free →