用途:在 GitHub Actions 中自动化 Supabase 的完整生命周期,让每次数据库变更在进入生产前得到验证。主要能力:PR 触发 CI,启动本地 Supabase(可禁用未用服务加速)、用 npx supabase db reset 从头应用全部迁移、重新生成 TypeScript 类型并对漂移失败(git diff --exit-code)、运行 pgTAP 与应用测试,最后总是 npx supabase stop。合并到 main 时通过路径过滤只对 supabase/migrations/** 和 supabase/functions/** 触发部署,执行 npx supabase db push 并部署 Edge Functions。还可为 PR 创建预览分支(npx supabase branches create),但需 Pro 计划且运行期间产生计算费用。使用方式:先在 GitHub Secrets 保存 SUPABASE_ACCESS_TOKEN、SUPABASE_DB_PASSWORD、SUPABASE_PROJECT_REF,用 supabase/setup-cli@v1 安装 CLI,并 npx supabase link --project-ref ${{ secrets.SUPABASE_PROJECT_REF }} 链接项目;本地需 Node.js 18+ 与 @supabase/supabase-js。测试分两层:supabase/tests/ 下 pgTAP 校验 RLS 与约束(本地 npx supabase test db),应用测试指向 http://127.0.0.1:54321 与本地 anon key。限制与注意:supabase start 需 Docker,建议 ubuntu-latest;db push 权限错误需重生成令牌;类型漂移需重新生成;预览分支仅 Pro 可用;迁移冲突可 npx supabase db pull 调和。官方文档与完整工作流分别见 ci-workflows.md 和 testing-patterns.md。
supabase-ci-integration
部署与运维
更新于 10-15 23:29