Skip to content

GitHub Actions 自动部署到 EdgeOne Pages

为什么用 GitHub Actions 而不是 EdgeOne 原生构建

EdgeOne Pages 原生支持 Git 集成,但某些场景下 GitHub Actions 更适合:

  1. 构建环境更可控——本地装什么,CI 跑什么,零差异
  2. 构建产物可复用——一次构建,同步部署到多个平台(Vercel / EdgeOne / 自建 CDN)
  3. 更复杂的构建流程——多阶段构建、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: 20

EdgeOne API Token 申请

  1. 登录 EdgeOne Pages 控制台
  2. 进入「账户设置」→「API 令牌」
  3. 复制 token
  4. GitHub 仓库 Settings → Secrets → Actions → New repository secret
  5. 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(灵活)

用 VitePress 构建,部署在 EdgeOne Pages