Skip to content

构建与部署 ​

目标 ​

源码保留在 Forgejo,静态网站发布到 Cloudflare Pages,公开域名为 maodo.deepfish.win。不需要上传业务源码,不建立文档镜像。

本地脚本发布 ​

首次执行:

sh
npm ci
npm run cf:login
npm run cf:whoami
npm run cf:init
npm run docs:deploy

cf: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 账号授权、项目创建及域名绑定仍待完成。

官方依据 ​