Add deployment automation
This commit is contained in:
36
README.md
36
README.md
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user