你可以使用 GitHub Actions ↗ 部署 Worker。以下介绍如何设置 GitHub Actions 工作流。
在本地运行 Wrangler 时,通过 wrangler login 命令与 Cloudflare API 进行身份验证,该命令会启动交互式身份验证流程。由于 CI/CD 环境是非交互式的,Wrangler 需要 Cloudflare API 令牌和账户 ID 来与 Cloudflare API 进行身份验证。
要查找 Cloudflare 账户 ID,请参阅查找账户和 zone ID。
要在 CI 作业中创建用于 Wrangler 身份验证的 API 令牌:
-
在 Cloudflare 仪表板中,前往 Account API tokens(账户 API 令牌) 页面。
Go to Account API tokens ↗ -
选择 Create Token(创建令牌)。
-
在 Permission policies(权限策略) 下,打开 Custom(自定义) 下拉菜单并选择 Edit Cloudflare Workers(编辑 Cloudflare Workers)。
-
自定义令牌名称。
-
限定令牌范围。
你需要选择生成的 API 令牌可以访问的账户和 zone 资源。我们建议尽可能缩小范围以限制令牌的访问权限。例如,如果你可以访问三个不同的 Cloudflare 账户,应将生成的 API 令牌限制为仅部署 Worker 的账户。
在 CI/CD 环境中运行 Wrangler 的方法取决于项目的具体设置(无论你使用 GitHub Actions/Jenkins/GitLab 还是其他工具)。
要设置 CI/CD:
- 前往 CI/CD 平台并添加以下密钥:
CLOUDFLARE_ACCOUNT_ID:设置为要部署 Worker 的 Cloudflare 账户 ID。CLOUDFLARE_API_TOKEN:设置为生成的 Cloudflare API 令牌。
- 创建一个负责部署 Worker 的工作流。该工作流应运行
wrangler deploy。在下一节中查看 GitHub Actions ↗ 工作流示例。
Cloudflare 提供了用于部署 Worker 的官方 Action ↗。参考以下示例工作流,在推送到 main 分支时部署 Worker。
name: Deploy Worker
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- uses: actions/checkout@v6
- name: Build & Deploy Worker
uses: cloudflare/wrangler-action@v3
with:
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}