Deployment workflow patterns for Supabase + Stripe Apps — environment promotion, feature flags, rollback procedures, and CI/CD pipeline stages.
Deployment workflow patterns for Supabase Edge Functions + Stripe Apps, covering environment promotion, feature flags, rollback, and CI/CD pipeline integration.
Use for:
Not for:
db-migration skill).stripe-apps-docs/publishing-guide.md)| Environment | Supabase Project | Stripe App | Branch |
|---|---|---|---|
| Dev | Dev project | Local dev server | Feature |
| Staging | Staging project | Uploaded (test) | staging |
| Production | Prod project | Published (live) | main |
Environment variables are set in the Supabase Dashboard per project (not in code):
# Per-environment (Supabase Dashboard → Edge Functions → Secrets)
SUPABASE_URL= # Auto-set by Supabase
SUPABASE_ANON_KEY= # Auto-set by Supabase
SUPABASE_SERVICE_ROLE_KEY= # Auto-set by Supabase
STRIPE_SECRET_KEY= # per-environment (test vs live)
STRIPE_WEBHOOK_SECRET= # per-environment
# Feature flags
FF_ENABLE_BATCH_EXPORT=true
FF_ENABLE_METADATA_EDITOR=false
Stripe App UI does not use environment variables — it accesses configuration via stripe-app.json constants and the Extension Context.
Push to feature branch
|
v
[1. Lint & Type Check] -----> fail? -> block merge
|
v
[2. Unit & Integration Tests] -> fail? -> block merge
|
v
[3. Build Stripe App] -------> fail? -> block merge
|
v
[4. Deploy Edge Functions (Dev)] --> test against dev Supabase
|
v
[5. E2E Tests on Dev] -------> fail? -> block merge
|
v
PR approved + merged to main
|
v
[6. Deploy Edge Functions (Prod)] -> supabase functions deploy
|
v
[7. Upload Stripe App] ------> stripe apps upload
|
v
[8. Smoke Tests] ------------> fail? -> rollback Edge Functions
# .github/workflows/ci.yml