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"