Add deployment automation

This commit is contained in:
2026-05-23 17:23:01 -06:00
parent 008ea1677f
commit 894bc028f7
7 changed files with 301 additions and 7 deletions

View File

@@ -18,7 +18,7 @@ This repo currently stops at:
- environment variable template
- deployment-ready project structure
This repo does not yet include MVP feature pages, SQL schema, avatar logic, habits, streaks, or shop logic.
This repo does not yet include MVP feature pages, avatar logic, habits, streaks, or shop logic.
## Local setup
@@ -59,11 +59,37 @@ Create a Supabase project, then copy the project URL and anon key from **Project
The starter also supports Supabase's publishable key name, but this repo documents the anon key convention from the project plan.
### Database workflow
- Schema migrations live under `supabase/migrations/`.
- Baseline catalog data lives in `supabase/seed.sql` and is safe to rerun during deploys because it uses idempotent upserts.
- Local CLI config lives in `supabase/config.toml` for `supabase start`, `supabase db reset`, and related commands.
- Production database sync runs from GitHub Actions on `main` using `supabase db push --linked --include-seed` before the app deploy relies on those changes.
## Deploy
1. Push the repo to GitHub.
2. Import the repo into Vercel.
3. Add the same Supabase environment variables in Vercel.
4. Deploy.
This repo includes `.github/workflows/deploy.yml`, which runs on pushes to `main`.
The workflow:
- checks out the repo
- runs `npm ci`, `npm run lint`, and `npm run build`
- links the Supabase CLI to the production project
- applies pending database migrations and reruns `supabase/seed.sql` via `supabase db push --linked --include-seed`
- deploys the app to Vercel production only after the database sync succeeds
### Required GitHub secrets
- `SUPABASE_ACCESS_TOKEN`
- `SUPABASE_PROJECT_REF`
- `SUPABASE_DB_PASSWORD`
- `VERCEL_TOKEN`
- `VERCEL_ORG_ID`
- `VERCEL_PROJECT_ID`
### Required Vercel environment variables
- `NEXT_PUBLIC_SUPABASE_URL`
- `NEXT_PUBLIC_SUPABASE_ANON_KEY`
Frontend and backend are both served from this Next.js app. Supabase provides auth and database services.