'Deployed' is not 'working'
The job deploy turning green means the code reached the runtime. Whether the runtime works is a separate question. Smoke tests answer it.
What to check
- Health endpoint —
/healthreturns 200 with build SHA matching what you just deployed. - One golden user-flow — login, fetch profile, log out. The minimum 'is the app alive' shape.
- External integrations — DB query, cache hit, third-party API ping.
- Asset URLs — main page returns HTML containing the expected title and CSS bundle hash.
Where smoke fits
- Pre-deploy: smoke staging after the staging deploy job, before the prod deploy starts.
- Post-deploy: smoke prod immediately after the prod deploy. If it fails, fire the rollback workflow.
Smoke vs full e2e
Smoke is fast (under 60 seconds) and tests presence-of-life. Full end-to-end is slower (5–30 minutes) and tests behavior under realistic conditions. They serve different roles. Smoke gates the deploy; e2e runs in nightly.