跳到主要内容

术语

词汇表

  • Woodpecker CI:Woodpecker 项目名称。
  • Woodpecker:一个开源工具,用于在您的代码上执行管道
  • 服务器:Woodpecker 的组件,处理来自代码托管平台的 webhook,编排代理,并发送状态反馈。它还为管理和配置提供 API 和 Web UI。
  • 代理:Woodpecker 的组件,使用特定后端(例如 Docker、Kubernetes、本地)执行管道(具体是一个或多个工作流)。它通过 GRPC 连接到服务器。
  • CLI:Woodpecker 命令行界面(CLI)是一个终端工具,用于管理服务器、在本地执行管道进行调试/测试,以及执行诸如检查管道等任务。
  • 管道:在代码上执行的工作流序列。管道由事件触发。
  • 工作流:作为管道一部分执行的步骤和服务序列。工作流由 YAML 文件表示。每个工作流都有自己独立的工作空间,通常还有额外的资源,如共享网络(docker)。
  • 步骤工作流中的单个命令、动作或任务。
  • 代码:指由代码托管平台使用的版本控制系统跟踪的文件。
  • 仓库:存储库的简称,这些是存储代码的位置。
  • 代码托管平台:托管仓库的托管平台或服务。
  • 工作空间:在工作流的所有步骤之间共享的文件夹,包含仓库和来自前面步骤生成的所有数据。
  • 事件:触发管道执行,例如代码托管平台事件如 push,或从 UI 手动触发的 manual
  • 提交:代码的定义状态,通常与像 Git 这样的版本控制系统相关联。
  • 矩阵:一个配置选项,允许为矩阵中的每个值执行工作流
  • 服务:服务是从工作流开始到结束执行的步骤。它可以通过网络从同一工作流中的其他步骤通过名称访问。
  • 插件:插件是扩展,为工作流中的步骤提供预定义的动作或命令。它们可以通过设置进行配置。
  • 容器:执行命令的轻量级和隔离环境。
  • YAML 文件:用于定义和配置工作流的文件格式。
  • 依赖关系工作流可以相互依赖,如果可能的话,它们会并行执行。
  • 状态:状态指步骤或工作流执行后的结果,由内部命令退出代码确定。在工作流结束时,其状态会发送到代码托管平台
  • 服务扩展:Woodpecker 内部服务的某些部分,如密钥存储或配置获取器,可以通过服务扩展进行替换。
  • 任务:任务是当前在任务队列中等待执行的工作流

Woodpecker 架构

Woodpecker 架构

上图显示了 Woodpecker 的架构。

Woodpecker 由一个服务器和一个或多个代理组成。

服务器是 Woodpecker 的核心组件,负责:

  • 提供 Web UI 和 API
  • 处理来自代码托管平台的 webhook
  • 管理用户、仓库和密钥
  • 将任务发送给代理
  • 存储日志和管道状态

代理连接到服务器并执行分配给它们的任务(工作流)。代理使用后端(如 Docker、Kubernetes 或本地)来执行工作流步骤。

管道、工作流、步骤

管道、工作流、步骤

上图显示了管道工作流步骤之间的关系。

管道是由事件触发的工作流的集合。

工作流是在管道中执行的步骤序列。

步骤是工作流中的单个任务。