Skip to content

Cloudflare Workers 与 GitHub 集成

Cloudflare Workers 是运行在边缘节点的 Serverless 代码。虽然你可以在网页控制台直接写代码,但对于生产环境项目,使用本地开发 + GitHub 托管 + Actions 自动部署才是最佳实践。

Serverless

前置条件

  1. GitHub 账号上有你的 Workers 项目仓库。
  2. Cloudflare 账号。
  3. 项目根目录包含 wrangler.toml 配置文件。

获取 API Token

为了让 GitHub Action 有权限发布代码到你的 Cloudflare 账号,你需要创建一个 API Token。

  1. 登录 Cloudflare Dashboard。
  2. 点击右上角头像 -> My Profile -> API Tokens
  3. 点击 Create Token
  4. 使用模板 Edit Cloudflare Workers
  5. 完成创建,复制这个 Token(只显示一次)。

配置 GitHub Secrets

  1. 进入你的 GitHub 仓库。
  2. 点击 Settings -> Secrets and variables -> Actions
  3. 点击 New repository secret
    • Name: CLOUDFLARE_API_TOKEN
    • Secret: (粘贴刚才复制的 Token)
  4. (可选) 如果需要 Account ID,也可以添加一个 CLOUDFLARE_ACCOUNT_ID

编写 Workflow 文件

在你的仓库中创建 .github/workflows/deploy.yml

yaml
name: Deploy Worker

on:
  push:
    branches:
      - main  # 监听 main 分支的提交

jobs:
  deploy:
    runs-on: ubuntu-latest
    name: Deploy
    steps:
      # 1. 拉取代码
      - uses: actions/checkout@v4

      # 2. 部署到 Cloudflare Workers
      - name: Deploy with Wrangler
        uses: cloudflare/wrangler-action@v3
        with:
          apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
          # accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} # 如果 wrangler.toml 里没写 account_id,这里需要指定

它是如何工作的?

  1. 当你在本地开发完成,运行 git push origin main
  2. GitHub 检测到 push 事件,启动 Action。
  3. cloudflare/wrangler-action 会自动安装最新版的 wrangler CLI 工具。
  4. 它会读取你仓库中的 wrangler.toml 配置。
  5. 使用 CLOUDFLARE_API_TOKEN 进行鉴权,将最新的代码上传并发布到 Cloudflare 全球网络。

常见 wrangler.toml 配置

确保你的项目里有这个文件,否则 Action 不知道发到哪里。

toml
name = "my-worker-project"
main = "src/index.js" # 入口文件
compatibility_date = "2024-01-01"

# 如果使用了 KV 存储
# [[kv_namespaces]]
# binding = "MY_KV"
# id = "xxxxxxxxxxxx"