GitHub Actions 自动部署到 EdgeOne Pages
为什么用 GitHub Actions 而不是 EdgeOne 原生构建
EdgeOne Pages 原生支持 Git 集成,但某些场景下 GitHub Actions 更适合:
- 构建环境更可控——本地装什么,CI 跑什么,零差异
- 构建产物可复用——一次构建,同步部署到多个平台(Vercel / EdgeOne / 自建 CDN)
- 更复杂的构建流程——多阶段构建、Docker、自定义脚本
完整 Workflow
.github/workflows/deploy.yml:
yaml
name: Deploy to EdgeOne Pages
on:
push:
branches: [main]
workflow_dispatch:
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
lfs: true
submodules: recursive
- uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Install dependencies
run: bun install --frozen-lockfile
- name: Build
run: bun run build
env:
NODE_ENV: production
- name: Deploy to EdgeOne Pages
uses: TencentEdgeOne/edgeone-pages-action@v1
with:
token: ${{ secrets.EDGEONE_API_TOKEN }}
project-name: wyclab-blog
build-path: ./docs/.vitepress/dist
node-version: 20EdgeOne API Token 申请
- 登录 EdgeOne Pages 控制台
- 进入「账户设置」→「API 令牌」
- 复制 token
- GitHub 仓库 Settings → Secrets → Actions → New repository secret
- Name:
EDGEONE_API_TOKEN,Value: 上面复制的 token
一些经验
bun install --frozen-lockfile确保依赖一致lfs: true处理大文件(如预生成的 pagefind 索引)- EdgeOne Action 的
node-version默认 20,VitePress 1.6 要求 Node ≥18 即可 - 失败重试:Action 默认失败不重试,可在 job 级别加
continue-on-error或用第三方 action
与原生 Git 集成的对比
| 维度 | EdgeOne Git 集成 | GitHub Actions |
|---|---|---|
| 配置难度 | 低(控制台下拉) | 中(写 YAML) |
| 构建环境 | EdgeOne 容器 | GitHub Runner |
| 可复用性 | 低 | 高 |
| 调试 | 控制台日志 | GitHub Actions 日志 |
| 多平台部署 | 不支持 | 支持 |
推荐
- 个人博客 / 单平台部署 → EdgeOne Git 集成(省事)
- 复杂项目 / 多平台 → GitHub Actions(灵活)