跳到主要内容

开始开发

您可以在本地计算机上按照以下步骤进行开发,也可以使用 GitpodGitea 开始完全准备好的在线设置。

Gitpod

如果您想以最简单的方式开始开发或更新文档,您可以使用我们为 Woodpecker 预配置的设置,使用 Gitpod。Gitpod 在云端启动一个完整的开发环境,包含:

  • 浏览器中的 IDE 或桥接到您的本地 VS-Code 或 Jetbrains
  • 预配置的 Gitea 实例作为代码托管平台
  • 预配置的 Woodpecker 服务器
  • 单个预配置的 Woodpecker 代理节点
  • 我们的文档预览服务器

点击以下徽章在 Gitpod 中启动 Woodpecker。您可以使用 woodpeckerpassword 登录。

Open in Gitpod

本地开发准备

安装 Go

按照此指南安装 Golang (>=1.20)。

安装 make

GNU Make 是一个工具,用于从程序的源文件控制可执行文件和其他非源文件的生成 (https://www.gnu.org/software/make/)。

在以下系统上安装 make:

  • Ubuntu: apt install make - 文档
  • Windows
  • Mac OS: brew install make

安装 Node.js 和 pnpm

如果您想构建 Woodpecker's UI 或文档,请安装 Node.js (>=20)

对于 Woodpecker UI 和文档的依赖安装(node_modules),使用包管理器 pnpm。 此指南描述了 pnpm 的安装方法。

安装 pre-commit(可选)

Woodpecker 使用 pre-commit 让您轻松自动修复代码。 要在本地开发期间应用它,请查看 pre-commit 的文档

创建包含开发配置的 .env 文件

类似于您为生产环境设置的 Woodpecker 环境变量,您可以在 Woodpecker 项目的根目录中创建一个 .env 文件并添加所需的配置。

用于调试的常见配置如下所示:

WOODPECKER_OPEN=true
WOODPECKER_ADMIN=your-username

WOODPECKER_HOST=http://localhost:8000

# github(代码托管平台配置示例 - 有关其他代码托管平台请参阅 /docs/administration/forge/overview)
WOODPECKER_GITHUB=true
WOODPECKER_GITHUB_CLIENT=<redacted>
WOODPECKER_GITHUB_SECRET=<redacted>

# 代理
WOODPECKER_SERVER=localhost:9000
WOODPECKER_AGENT_SECRET=a-long-and-secure-password-used-for-the-local-development-system
WOODPECKER_MAX_WORKFLOWS=1

# 如果您想开发 UI,请启用此项
# WOODPECKER_DEV_WWW_PROXY=http://localhost:8010

# 如果您想使用在线代码托管平台(如 GitHub)测试 webhooks,此地址需要设置并且可以从公共服务器访问
WOODPECKER_EXPERT_WEBHOOK_HOST=http://your-address.com

# 在调试时禁用健康检查(在开发时通常不需要)
WOODPECKER_HEALTHCHECK=false

# WOODPECKER_LOG_LEVEL=debug
# WOODPECKER_LOG_LEVEL=trace

设置 OAuth

按照代码托管平台文档中所述为您的代码托管平台创建 OAuth 应用。

使用 VS Code 进行开发

您可以使用不同的方法来调试 Woodpecker 应用程序。目前推荐的方法之一是使用 VS-CodeVS-Codium(VS-Code 的开源二进制文件),因为大多数维护者都在使用它,并且 Woodpecker 已经包含了所需的调试配置。

要启动本地开发所需的所有服务,您可以使用 "Woodpecker CI" 调试配置,它将在调试模式下启动 UI、服务器和代理。然后打开 http://localhost:8000 即可访问。

作为使用 VS Code 编程 Go 的入门指南,您可以使用此视频指南: Getting started with Go in VS Code

调试 Woodpecker

Woodpecker 源代码已经包含了 Woodpecker 服务器和代理的启动配置。要开始调试,您可以点击 VS-Code 导航栏中的调试图标(ctrl-shift-d)。在该页面上您将在顶部看到现有的启动作业。只需选择代理或服务器并点击播放按钮。您可以在源文件中设置断点以在特定点停止。

使用 VS Code 调试 Woodpecker

测试和代码检查

要测试或检查 Woodpecker 的各个部分,您可以运行以下命令之一:

# 测试服务器代码
make test-server

# 测试代理代码
make test-agent

# 测试 CLI 代码
make test-cli

# 测试数据存储/数据库相关代码,如服务器的迁移
make test-server-datastore

# 检查 Go 代码
make lint

# 检查 UI 代码
make lint-frontend

# 测试 UI 代码
make test-frontend

如果您想测试特定的 Go 文件,您也可以使用:

go test -race -timeout 30s go.woodpecker-ci.org/woodpecker/v3/<path-to-the-package-or-file-to-test>

或者您可以在 VS-Code 中打开测试文件,并通过点击内联命令运行或调试测试:

通过 VS-Code 运行测试

从终端运行应用程序

如果您想从终端运行 Woodpecker 应用程序,您可以从 Woodpecker 项目的基础目录使用以下命令之一。它们将以类似于 调试 Woodpecker 所述的方式执行 Woodpecker,但无法在您的编辑器中真正调试它。

启动服务器
go run ./cmd/server
启动代理
go run ./cmd/agent
执行 CLI 命令
go run ./cmd/cli [command]