外观
构建与部署
目标
源码保留在 Forgejo,静态网站发布到 Cloudflare Pages,公开域名为 maodo.deepfish.win。不需要上传业务源码,不建立文档镜像。
本地脚本发布
首次执行:
sh
npm ci
npm run cf:login
npm run cf:whoami
npm run cf:init
npm run docs:deploycf:login 打开浏览器进行 Cloudflare OAuth 授权,不需要把密码或 Token 发到聊天。cf:whoami 用于确认账号;多账号时需在当前终端指定 CLOUDFLARE_ACCOUNT_ID。cf:init 创建名为 maodo-wiki 的 Pages 项目,已经存在时跳过。
后续每次只运行:
sh
npm run docs:deploy该命令先检查并构建,再上传 dist,明确发布到 main 生产分支;构建失败不会上传。Wrangler 版本已固定在依赖与锁文件中。
域名首次需要在 Pages 项目 Custom domains 中添加 maodo.deepfish.win 并完成 DNS 绑定;绑定后每次发布无需重复配置。CLI 发布不自动建立域名绑定,域名也可以后续通过 Cloudflare API 自动配置。
Forgejo 自动发布
Actions 只负责调度,实际构建需有可用 Runner。先确认实例版本、Runner 标签、Docker/Node 及 npm 网络。
ci/forgejo-build.yml.example:仅构建。ci/forgejo-deploy.yml.example:main 推送后构建并发布。
默认都未启用。确认 Runner 后,将所需模板复制到 .forgejo/workflows/。发布模板使用仓库 Secrets:CLOUDFLARE_ACCOUNT_ID、CLOUDFLARE_API_TOKEN。Token 仅授予目标账户的 Cloudflare Pages Edit,不写入文件或聊天。仅可信 main 发布,不向 PR 注入凭证。模板尚未在真实 Runner 验证。
状态
脚本已配置不代表已发布;须以 Wrangler 返回的成功部署和公网验证为准。Cloudflare 账号授权、项目创建及域名绑定仍待完成。