菜单

CI/CD 工作流

相关源文件

此页面介绍了 AutoGPT 项目中使用的持续集成和持续部署(CI/CD)工作流。它解释了如何设置自动化流程来测试、验证和部署代码更改。有关一般贡献流程的信息,请参阅 贡献,有关测试策略的详细信息,请参阅 测试

AutoGPT 中的 CI/CD 概述

AutoGPT 项目使用 GitHub Actions 来实现 CI/CD 工作流。这些自动化工作流有助于维护代码质量、确保一致的测试并简化系统中不同组件的部署流程。

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

经典 AutoGPT 工作流

组件CI 检查CD 操作
原始 AutoGPTPython 测试、命令测试构建 CLI 包
ForgeAPI 测试、代理测试发布工具包
基准测试性能测试更新基准测试结果

来源:.github/labeler.yml

拉取请求验证

PR 验证工作流是 CI 系统的一个关键部分,它会自动标记和验证贡献。

来源:.github/labeler.yml

贡献者最佳实践

在使用 AutoGPT 的 CI/CD 系统时,请遵循以下最佳实践

  1. 在提交 PR 之前本地运行测试,及早发现问题
  2. 检查 PR 上的工作流状态,以便快速处理任何失败
  3. 为新功能添加测试,以维护或提高测试覆盖率
  4. 更改功能时更新文档
  5. 监控部署情况(如果您的更改正在发布)

工作流维护

CI/CD 工作流本身作为代码维护在仓库中。工作流文件使用 GitHub Actions 语法定义自动化流程,并存储在 .github/workflows/ 目录中。这些工作流会定期更新,以提高效率并适应新的项目需求。

结论

AutoGPT 中的 CI/CD 工作流提供了自动化的测试、验证和部署功能,有助于维护代码质量并简化开发流程。通过自动化重复性任务,这些工作流使开发人员能够专注于构建和改进功能,而不是处理手动测试和部署流程。