此页面介绍了 AutoGPT 项目中使用的持续集成和持续部署(CI/CD)工作流。它解释了如何设置自动化流程来测试、验证和部署代码更改。有关一般贡献流程的信息,请参阅 贡献,有关测试策略的详细信息,请参阅 测试。
AutoGPT 项目使用 GitHub Actions 来实现 CI/CD 工作流。这些自动化工作流有助于维护代码质量、确保一致的测试并简化系统中不同组件的部署流程。
来源:.github/labeler.yml
AutoGPT 的 CI/CD 工作流由不同的 GitHub 事件触发
| 触发器 | 描述 | 已激活的工作流 |
|---|---|---|
| 拉取请求 | 打开或更新 PR 时 | 代码风格检查、单元测试、集成测试 |
| 推送到主分支 | 当更改合并到主分支时 | 所有 CI 工作流 + 构建工作流 |
| 推送到发布分支 | 当发布分支更新时 | 所有 CI 工作流 + 构建 + 部署工作流 |
| 手动触发 | 由维护者触发 | 根据需要运行特定工作流 |
| 计划运行 | 定期运行 | 夜间测试、依赖项检查 |
风格检查工作流会检查 AutoGPT 系统所有组件的代码风格和质量。
测试工作流运行系统中各个组件的不同测试套件。
来源:.gitmodules
基准测试工作流测试 AutoGPT 代理的性能和能力。
来源:.github/labeler.yml
当 CI 测试通过后,构建工作流会准备好软件以进行部署。
部署工作流负责将发布推送到不同的环境。
AutoGPT 的 CI/CD 系统为不同的组件运行专门的工作流
| 组件 | CI 检查 | CD 操作 |
|---|---|---|
| 前端 | TypeScript 风格检查、React 测试 | 构建和部署 UI |
| 后端 | Python 测试、API 验证 | 构建和部署服务器 |
| 块系统 | 块验证、集成测试 | 更新块注册表 |
来源:.github/labeler.yml
| 组件 | CI 检查 | CD 操作 |
|---|---|---|
| 原始 AutoGPT | Python 测试、命令测试 | 构建 CLI 包 |
| Forge | API 测试、代理测试 | 发布工具包 |
| 基准测试 | 性能测试 | 更新基准测试结果 |
来源:.github/labeler.yml
PR 验证工作流是 CI 系统的一个关键部分,它会自动标记和验证贡献。
来源:.github/labeler.yml
在使用 AutoGPT 的 CI/CD 系统时,请遵循以下最佳实践
CI/CD 工作流本身作为代码维护在仓库中。工作流文件使用 GitHub Actions 语法定义自动化流程,并存储在 .github/workflows/ 目录中。这些工作流会定期更新,以提高效率并适应新的项目需求。
AutoGPT 中的 CI/CD 工作流提供了自动化的测试、验证和部署功能,有助于维护代码质量并简化开发流程。通过自动化重复性任务,这些工作流使开发人员能够专注于构建和改进功能,而不是处理手动测试和部署流程。