跳至正文
Cloudflare — Cloudflare Workers Builds:能承担哪些工作,与 GitHub Actions 如何分工

Cloudflare Workers Builds:能承担哪些工作,与 GitHub Actions 如何分工

AI 参与说明(Agent:Codex):本文由 Codex 根据 Cloudflare 与 GitHub 官方文档整理,使用 Context7 辅助核验,资料日期为 2026-09-16。功能与限额以文中官方来源为准;任务分工属于本文建议。运行记录:模型 gpt-6-astra,reasoning effort ultra,执行入口 Codex Desktop,提供方 openai,CLI 版本 0.154.0-alpha.6.2(不代表桌面 App 版本)。

Workers Builds 可以承担一个 Cloudflare 项目的检查、测试、构建和部署。当需求扩展到多操作系统、多任务依赖、人工审批或大量仓库自动化时,GitHub Actions 的原生编排能力更合适。两者都能执行脚本,选型应看运行环境与流程复杂度。

英文术语中文名称简要解释
Workers BuildsWorkers Builds(产品名)Cloudflare 托管的项目构建与部署服务
GitHub ActionsGitHub Actions(产品名)根据仓库事件等条件运行自动化工作流的平台
Build command / Deploy command构建命令/部署命令Workers Builds 中先后执行的两个命令入口
Runner运行器执行 GitHub Actions 任务的机器或运行环境
Matrix矩阵按多个版本、系统等参数组合展开一组任务
Deploy Hooks部署钩子外部系统通过 HTTP 请求触发 Workers Builds 的入口

Workers Builds 实际运行什么

Workers Builds runs a configurable build command followed by a deploy command. GitHub Actions organizes automation into workflows, jobs, and steps. Cloudflare 配置GitHub Actions 基础概念

当前 Workers Builds 使用 Ubuntu 24.04、x86_64 构建环境,支持 Node.js、Python、Go 等工具链。因此它可以运行测试、数据处理和构建脚本;这些命令不是在处理网页请求的 Worker Runtime 中执行,不能套用 Worker 请求的 CPU 时间限制。Build image

适合放进去的工作包括:

  • 质量检查:格式检查、lint、类型检查、单元测试,以及能在其环境和时限内完成的集成测试。
  • 生成发布产物:编译前端、生成静态 HTML、压缩资源、生成类型和搜索索引。
  • 准备构建数据:调用 CMS/API、拉取公开内容、转换 JSON 或 Markdown,再参与构建。
  • 发布相关脚本:在凭据和权限齐全时上传资源、上传 source map、调用其他服务的 CLI/API。数据库迁移也可由脚本执行,但其失败与回滚策略需要单独设计。

这些是根据自定义命令与构建环境推导出的可承担任务,并不表示平台为每项都提供了专门界面。测试失败应返回非零退出码;具体工具、网络依赖和耗时需要在真实构建中验证。

部署目标通常是 Worker、随 Worker 发布的静态资源,或适配 Workers 的全栈应用。当前也支持通过 wrangler deploy 构建和发布 Cloudflare Containers 的镜像;不能笼统地说 Workers Builds 不支持 Dockerfile 构建。Containers 的非生产分支默认 wrangler versions upload 只上传 Worker 代码,不更新镜像;使用 Durable Objects 的 Worker(含 Containers)不生成 Preview URLs。Deploy Containers

与 GitHub Actions 的工作边界

下表区分平台现成能力与需要自己编写的流程。Workers Builds 没有同级配置入口,不代表通过脚本绝对无法实现。

工作Workers BuildsGitHub Actions
单项目检查、测试、构建、部署放入自定义命令,配置较少按 steps 或 jobs 组织
多版本、多操作系统测试可自行运行命令,但环境固定;不是原生 Matrix原生 Matrix,可选择 Linux、Windows、macOS Runner
多任务并行,全部完成后部署复杂依赖需脚本或外部协调原生 jobs、needs、条件和并发控制
PostgreSQL/Redis 集成测试自行安排测试服务及连接,没有同级声明式服务配置支持 Docker 的 Linux Runner 可配置 service containers,由平台管理生命周期
测试报告、产物留存和跨任务传递可上传到外部存储;Build cache 不能当作报告归档原生 workflow artifacts
定时、手动、外部事件Git 推送、平台/API 触发;Deploy Hooks 可接外部调度原生 scheduleworkflow_dispatchrepository_dispatch
发布前人工审批当前公开配置未提供与 Actions environments 等价的审批门禁,需外部流程控制environments 可提供审批与部署限制,可用性受套餐及仓库可见性影响
npm 发布、GitHub Release、issue 整理有凭据时可调用命令/API,需补齐触发与发布流程与 release、issues 等仓库事件结合更直接
iOS/macOS 编译、特殊硬件或内网环境固定 Linux 环境不能覆盖这些本机依赖可选择 macOS/Windows 或 self-hosted Runner

GitHub 侧依据:jobs 与依赖Matrix 和 service containers 语法Runner 环境self-hosted Runnerworkflow artifacts事件触发部署环境及套餐条件

Workers Builds 可以连接同一 monorepo 下的多个 Worker,分别配置 Root directory、命令及 Build watch paths;这方便按应用独立构建,但不等于已有跨应用的统一依赖编排。Advanced setups

一个可以直接套用的发布流程

下面针对已有 Node.js 项目:package.json 已定义 linttypechecktest:cibuild,其中 test:ci 执行一次测试后退出;项目已配置 Wrangler,并在依赖及 lockfile 中固定版本。脚本名是本文示例,使用时替换为项目实际入口。

在 Worker 的 Settings → Build 中设置 Build command:

sh
npm run lint && npm run typecheck && npm run test:ci && npm run build

生产 Deploy command:

sh
npx wrangler deploy

这对应“检查通过 → 测试通过 → 生成产物 → 部署”。&& 保证前一步失败时停止后续命令,避免吞掉测试失败后继续构建。可以把长命令收进仓库脚本,再在控制台调用。Build command 与 Deploy command

Workers Builds 默认会安装依赖,因此上例没有再加一次 npm ci。如果需要自行控制安装过程,可设置 Build variable SKIP_DEPENDENCY_INSTALL=1,再把 npm ci 加在命令最前面。依赖安装配置

验收时检查三个结果:让一个测试故意失败,确认没有进入部署;恢复测试后确认生成并部署预期产物;核对日志中的提交版本与目标环境。本文仅验证了命令串的成功、失败短路行为,没有为该示例创建真实 Worker 或执行远端发布。

如需预览,启用 non-production branch builds 后,其默认命令是 npx wrangler versions upload。也可把这一路改成只检查、不上传的脚本,作为轻量 CI;前提仍是已连接的 Worker 构建项目。分支构建自定义非生产分支命令

定时同步、内容更新也能触发吗

可以。CMS、其他 CI 或调度器可以请求 Deploy Hooks,触发指定分支的构建。官方也给出了由 Worker Cron Trigger 定时调用 Deploy Hooks 的方式,因此不能将 Workers Builds 描述成只能在 Git push 时执行。Deploy Hooks

区别是 Actions 可以在工作流里直接声明 schedule;Workers Builds 的这个方案由外部调度器负责时间,再通过 Deploy Hooks 启动构建。它适合“定时更新数据后重建网站”;纯数据同步或仓库维护若与发布无关,通常留在 Actions 或专门的定时任务中更清晰。这是工作分工建议。Actions 触发方式

Deploy Hooks URL 本身携带触发权限,应作为 secret 保存;构建用 secrets 与 Worker 运行时 secrets 也应分别配置。Deploy Hooks 权限Build variables and secrets

决定能否迁移的限制

目前单次 Workers Builds 最长 20 分钟;免费/付费套餐在同一账户下分别允许 1/6 个并发构建,配备 2/4 vCPU,内存均为 8 GB、磁盘均为 20 GB。测试、准备数据、编译和部署应整体考虑耗时。Limits & pricing

因此,长时间 E2E、大规模矩阵测试、视频处理、训练或常驻进程不适合依赖这条构建流水线;有浏览器依赖的短测试则需实测安装、启动与耗时,不能仅凭它是 Node.js 命令就认定一定可用。这些是依据资源限制提出的选型建议。

费用也不能只比较“3,000 免费分钟”:公开仓库使用 GitHub standard hosted runners 免费且不限分钟,larger runners 等另有计费,artifacts 存储也有自己的规则。是否迁移应先看仓库可见性、Runner 类型和实际耗时。GitHub hosted runners

如何组合两者

  • 简单 Cloudflare 应用:Workers Builds 负责快速检查、测试、构建和部署,维护一套发布配置。
  • 测试与仓库自动化较多:Actions 负责 Matrix、较重测试、npm/Release 发布和仓库维护;Workers Builds 负责应用发布。
  • 生产必须等待完整 Actions 检查:由 Actions 统一组织检查与发布,或在检查通过后显式触发受控构建;核对实际构建的 commit 与通过检查的 commit 一致。

最后一种场景要明确:两个平台同时监听同一次 push,并不自动形成“Actions 测试完成后 Workers Builds 才部署”的依赖关系。如果这是发布条件,应显式建立顺序,避免独立流水线竞速;同一目标也尽量只保留一个实际发布入口。这是根据两套触发模型得出的工程建议。Cloudflare Git 集成Actions jobs 依赖

迁移时可以复用仓库里的 Shell、Node.js、Python 脚本;.github/workflows/*.yml 的 jobs、事件和权限配置则需要按 Workers Builds 的入口重新安排,不能当作可直接导入的构建配置。

关联阅读

本文共 2456 字,创建于 Sep 16, 2026

相关标签:Cloudflare, ByAI

博客助手

正在打开博客助手…