594 字
2 分钟
CNB 自动部署 EdgeOne Pages:.cnb.yml 实战

除了常见的 GitHub Actions、Pages 方案,这个站也可以用 CNBcnb.cool)做自动化部署。
核心思路很简单:只要 push 到 main,就自动执行 构建 + 发布。仓库根目录的 .cnb.yml 就是入口配置。

流水线在做什么#

当前流程可以理解成三步:

  1. 引入环境变量:从仓库里单独维护的 envs.yml(或你在 CNB 里配置的等价变量)注入密钥等,避免全部写死在主配置里。
  2. 构建:在 node:22 镜像里安装 pnpm,执行 pnpm installpnpm run build,得到 dist/
  3. 部署:用 腾讯云 EdgeOne Pages 的官方 CLI,把 dist 推到指定项目。

和本仓库当前配置大致对应如下(具体以你仓库最新文件为准):

main:
push:
- imports: https://cnb.cool/*/envs.yml
stages:
- name: Build Current Project
image: node:22
script: node -v && npm install -g pnpm && pnpm install && pnpm run build
- name: Deploy to EdgeOne Pages
image: node:22
script: npx edgeone pages deploy ./dist -n blog-cnb -t $EDGEONE_API_TOKEN

几个关键点:

  • main / push:推送到默认分支 main 时触发。
  • imports:拉取远端或本仓的变量定义,供后续 stage 使用(例如 EDGEONE_API_TOKEN)。
  • 两阶段串行:先产出 dist,再部署;第二阶段直接 npx edgeone pages deploy 即可,不一定要再装一遍 pnpm(除非你想合并阶段)。

EdgeOne 侧要准备什么#

  • 在 EdgeOne / Pages 控制台创建好站点,并拿到可用于 CI 的 API Token
  • 在 CNB 的变量或 envs.yml 里配置 EDGEONE_API_TOKEN(与脚本里的 $EDGEONE_API_TOKEN 名称一致)。
  • -n blog-cnb 是 CLI 里的 项目名称(与控制台里一致即可);若你改名,需同步改 .cnb.yml 里的参数。

本地想手动试部署的话,也可以先 pnpm run build,再执行同一条 npx edgeone pages deploy ...,排错会更直观。

安全与维护建议#

  • 不要把明文 Token 长期放在公开仓库里。更稳妥的做法是只在 CNB 平台的“密钥/环境变量”里配置,或者使用私有 imports。如果 envs.yml 曾经泄露过密钥,记得及时轮换 Token。
  • 构建命令与正式站点一致(pnpm run build),这样本地、CI、文档里说的产物路径(如 ./dist)才能对齐。

小结#

.cnb.yml 的核心价值就是把 “装依赖 -> 构建 -> 发布” 固定成可重复流程。
你只管写文章、push 代码,部署会自动完成。
如果你同时保留 .github/workflows/deploy.yml,两套 CI 也能共存,按你的分支策略选用即可。

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

CNB 自动部署 EdgeOne Pages:.cnb.yml 实战
https://kongdf.com/posts/learning/devops/cnb-edgeone-deploy/
作者
孔大夫
发布于
2026-04-23
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时