在 GitHub 倉庫 Settings > Secrets and variables > Actions 中設定以下 Secrets:
| Secret | 說明 |
|---|---|
VERCEL_TOKEN |
Vercel 帳戶 Token |
VERCEL_ORG_ID |
Vercel 團隊 ID |
VERCEL_PROJECT_ID |
Vercel 專案 ID |
SUPABASE_ACCESS_TOKEN |
Supabase 個人存取 Token |
SUPABASE_PROJECT_REF |
Supabase 專案參考 ID |
SUPABASE_DB_PASSWORD |
Supabase 資料庫密碼 |
- 在 Vercel 匯入 GitHub 倉庫
- 設定 Framework Preset 為 Next.js
- 加入環境變數:
NEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEY
- 部署完成後設定自訂網域(選用)
- 在 supabase.com 建立新專案
- 取得專案 URL 與 anon key,寫入
.env.local:
NEXT_PUBLIC_SUPABASE_URL=https://xxxxx.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIs...
- 執行資料庫 migration(可在本地或 CI 中執行):
supabase link --project-ref $PROJECT_REF
supabase db push已配置 .github/workflows/deploy.yml,流程如下:
- test - 執行 lint、type-check、單元測試
- supabase-migration - 連結 Supabase 並執行資料庫遷移與 Edge Functions 部署
- vercel-deploy - 拉取 Vercel 環境變數 → 建置 → 部署 → 健康檢查
觸發方式:
- 推送到
main分支 → 部署至正式環境 - 推送到
develop分支 → 部署至預覽環境 - 手動觸發(Workflow dispatch)
npm install
npm run dev