Wrangler 自动化与日志体系:从脚本到 CI
基础设施防线要求「不打补丁战」,因此 wrangler 流水线需要原子化。本文从 scripts/use-wrangler-config.mjs 起步,讲解如何把账号切换、日志 tail、SQL 执行全部写进自动化任务,并融入 CI。
账号切换:模板即规范
脚本接受 test/prod 或自定义 *.toml 作为参数,将 wrangler.account-*.toml 复制为 wrangler.toml。CI 里可以在 job 前执行 pnpm wrangler:config:test 然后 cache dist,以此保证环境一致。
- 脚本会校验文件是否存在,缺失时直接 exit 1 阻断流水线
- 命令输出 [wrangler-config] 日志,方便在 CI 面板中检索
日志追踪:pnpm logs:*
借助 wrangler pages deployment tail,可以持续输出 preview/production 的请求详情。把该命令封装成 pnpm logs:test|prod 后,开发者本地 / CI 都能在统一入口订阅日志。
pnpm wrangler:config:test && wrangler pages deployment tail \
--project-name cf-nuxt-pages-kit \
--environment preview \
--format prettyCI 集成:一次成型
在 GitHub Actions 中,把 wrangler CLI 与 pnpm 脚本结合:install 依赖、运行 lint/test、pnpm deploy:test。若需要部署 production,可以在保护分支上触发单独 workflow,以避免手动 patch。CI 中统一使用 wrangler.account-*.toml,保证本地与流水线环境一致。
多环境与回滚策略
利用 Cloudflare Pages 的 preview/production 模型,可以为每个 PR 自动构建 preview,主干合并后再部署到 production。通过 wrangler pages deployment list/tail,你可以快速发现问题并回滚到上一个稳定 deployment,而不是在服务器上做危险操作。
- 在 CI 中为 main 分支配置「部署到 production」,为其他分支部署到 preview
- 遇到故障时,通过 Dashboard 或 wrangler 指定 deployment 进行回滚
- 日志与指标保持在同一个观测面板中,减少排障时间