Cloudflare 推出基于 Workflows 的原生 CI/CD 能力

Cloudflare AI Bl16 天前

Cloudflare 正在把代码存储、构建、测试与部署能力整合到其开发者平台上。其最新方案将 Artifacts、Cloudflare Workflows 与 CI SDK 组合起来,让平台方可以在 Cloudflare 上原生运行连续集成与持续部署流程。

核心变化:CI/CD 管道可以直接写成 Workflow

传统 CI/CD 常见做法是通过 YAML 文件编排一系列步骤,例如构建、代码检查、类型检查、测试和部署。Cloudflare 的新方案把这些步骤映射为 Workflow 中的 step.do(),允许开发者使用 TypeScript 定义 CI/CD 流程。

这意味着平台方可以在代码中更灵活地描述流水线逻辑,而不是维护复杂的 YAML 配置。

Cloudflare 表示,CI SDK 基于 Workflows 和 Sandbox SDK 构建,可以让每个 CI 步骤在安全、隔离的环境中执行,并继承 Workflows 提供的重试、超时和可观测能力。

Artifacts 推送可直接触发 CI 任务

Cloudflare Artifacts 是其面向大规模代码仓库的版本化代码存储能力。新的集成允许开发者在 wrangler 配置中通过 events 字段,将 artifact push 事件直接绑定到某个 Workflow。

当代码仓库发生推送事件时,Cloudflare 会自动启动一个 Workflow 实例。这个实例本质上就是一次 CI 运行,开发者可以在 Workflows 控制台中查看每一步的执行情况。

此前,如果要订阅 Artifacts 的事件并触发构建流程,需要配置事件订阅、队列、消费者以及队列处理逻辑。新的方式减少了这些中间配置。

CI SDK 支持的典型能力

通过安装 @cloudflare/ci,开发者可以在 Workflow 中执行多类 CI/CD 操作:

  • 自动构建:在隔离环境中编译 Artifacts 仓库中的代码;
  • 运行 linter 和类型检查:检查代码风格、类型错误及潜在问题;
  • 依赖缓存:安装依赖后在多个步骤之间复用缓存;
  • 执行单元测试:验证代码模块是否按预期工作;
  • 条件部署:仅在构建或检查通过后自动部署;
  • 自修复流程:在构建步骤失败时,引入 AI agent 尝试修复并提交变更。

面向平台型产品的场景

Cloudflare 特别强调了平台方场景。许多平台不仅要存储和运行自己的代码,也要承载客户的代码和扩展能力。对这类平台而言,CI/CD 需求可能分为两类:

  1. 平台方统一管理客户应用的构建与部署;
  2. 客户希望为自己的仓库定义定制化 CI 流程。

Cloudflare 的方案允许这两种方式同时存在。平台可以为整个命名空间下的仓库运行统一 CI;如果某些客户需要自定义流程,也可以通过动态 Workflows 为单个仓库运行自己的 CI 任务。

依赖缓存与并行执行

在 CI Workflow 中,开发者通常需要先定义 install 步骤,用于安装外部依赖或工具,例如 bundler、linter、测试运行器等。

Cloudflare 的方案支持通过沙箱快照缓存依赖。安装步骤完成后,快照会存储在账户中的 R2 bucket 中,后续步骤可以复用这些依赖,避免每个步骤重复安装。

在默认情况下,Workflow 中的步骤可以并发执行。开发者可以让构建、lint、测试和类型检查等步骤并行运行,并使用 Promise.all() 等方式等待全部检查完成后再进入部署步骤。

这种方式可以降低整体 CI 运行延迟。

与部署流程的结合

如果流水线检查全部通过,开发者可以在部署步骤中执行 wrangler deploy。这样,Worker 可以在 CI 成功后自动部署。

要完整配置此类 CI Workflow,需要在项目中添加相关绑定,包括:

  • Artifacts;
  • Workflows;
  • Containers;
  • Durable Objects;
  • R2(如果使用缓存)。

其中,R2 用于存储安装步骤的沙箱快照。

自修复 CI:失败后由 Agent 尝试修复

Cloudflare 还展示了“自修复 CI”的方向。该能力需要两个部分:大语言模型和 agent 执行框架。

示例中,Cloudflare 使用 Think agent 与 Workers AI。当 CI 步骤失败时,agent 可以捕获错误,尝试在容器中运行修复操作,并将修复提交到代码仓库中,等待开发者审核合并。

Cloudflare 的设想是,开发者不必一直盯着 CI 运行状态,也不必在失败后立即手动修复并重新运行流水线。CI 任务和修复 agent 都可以在云端运行。

不过,这类自动修复流程仍依赖具体模型、agent 实现和人工审核机制。其适用范围与可靠性需要在实际项目中验证。

小结

Cloudflare 这次更新的重点,是把 CI/CD 从外部流水线配置进一步拉入其平台内部:

  • 用 Artifacts 存储代码;
  • 用 Workflows 编排 CI/CD;
  • 用 Sandbox 执行隔离命令;
  • 用 R2 缓存依赖快照;
  • 用 Workers AI 和 agent 尝试处理失败修复;
  • 用事件触发机制在代码推送时自动启动流水线。

对需要管理大量仓库的平台型产品而言,这种模式的价值在于统一管理和可定制并存。开发者既可以为所有仓库定义统一 CI,也可以允许部分仓库拥有自己的 Workflow。

评论

请登录后发表观点

暂无数据