agentic_huge_data_base / wiki
页面 Cognee · 10.4 持续集成与持续交付管线·DeepWiki 中文全文译文

10.4 · 持续集成与持续交付管线(CI/CD Pipeline)

记忆管道与知识图谱构建 · 聚焦本章的模块关系、源码依据与实现要点。

项目Cognee 章节10.4 状态全文译文 模块测试、发布与运维、存储与持久化、安装与启动、工作流与编排
源码线索
  • .github/actions/cognee_setup/action.yml
  • .github/docs/release.md
  • .github/workflows/basic_tests.yml
  • .github/workflows/db_examples_tests.yml
  • .github/workflows/dev_canary_release.yml
  • .github/workflows/disable_independent_workflows.sh
  • .github/workflows/e2e_tests.yml
  • .github/workflows/examples_tests.yml
  • .github/workflows/graph_db_tests.yml
  • .github/workflows/load_tests.yml
模块标签
  • 测试、发布与运维
  • 存储与持久化
  • 安装与启动
  • 工作流与编排
  • 界面与交互

章节正文

持续集成与持续交付管线

持续集成与持续交付管线

相关源文件

以下文件为本 Wiki 页面的生成提供了上下文:

  • .github/actions/cognee_setup/action.yml
  • .github/docs/release.md
  • .github/workflows/basic_tests.yml
  • .github/workflows/db_examples_tests.yml
  • .github/workflows/dev_canary_release.yml
  • .github/workflows/disable_independent_workflows.sh
  • .github/workflows/e2e_tests.yml
  • .github/workflows/examples_tests.yml
  • .github/workflows/graph_db_tests.yml
  • .github/workflows/load_tests.yml
  • .github/workflows/pre_test.yml
  • .github/workflows/relational_db_migration_tests.yml
  • .github/workflows/release.yml
  • .github/workflows/release_test.yml
  • .github/workflows/reusable_notebook.yml
  • .github/workflows/scorecard.yml
  • .github/workflows/search_db_tests.yml
  • .github/workflows/slow_e2e_tests.yml
  • .github/workflows/test_different_operating_systems.yml
  • .github/workflows/test_llms.yml
  • .github/workflows/test_s3_file_storage.yml
  • .github/workflows/test_suites.yml
  • .github/workflows/vector_db_tests.yml
  • .github/workflows/weighted_edges_tests.yml
  • .gitignore
  • bin/generate-release-notes
  • cognee/api/v1/delete/delete.py
  • cognee/api/v1/update/update.py
  • cognee/api/v1/visualize/start_visualization_server.py
  • cognee/tests/test_delete_by_id.py
  • tools/generate_release_notes.py

CI/CD 管线使用 GitHub Actions 自动化完成 Cognee 系统的测试、构建和部署。本文档涵盖了工作流编排、多环境测试执行、数据库配置以及 Docker 镜像发布。

工作流架构总览

CI/CD 系统采用分层工作流结构,由一个主编排器调用专用的可复用工作流。这种设计在管理测试套件间依赖关系的同时,支持并行执行。

工作流层级
Cognee · 工作流层级 · 图 1
Cognee · 工作流层级 · 图 1

来源: .github/workflows/test_suites.yml:1-193, .github/workflows/basic_tests.yml:1-144

主编排工作流

test_suites.yml 工作流充当中央编排器。它通过构建专用的 Docker 镜像来建立预配置的 CI 环境,从而加速后续任务。

CI 环境构建器

build-ci-env 任务根据 pyproject.tomluv.lock 计算依赖哈希值。如果 GitHub 容器注册表(GHCR)中不存在具有该哈希值的镜像,则使用 Dockerfile.ci 构建一个新的镜像 .github/workflows/test_suites.yml:24-86

依赖链

该工作流使用 needs 关键字建立执行顺序,确保仅在基础检查通过后才运行开销较大或速度较慢的测试。

阶段任务依赖项
阶段 0pre-test
阶段 1basic-tests, e2e-tests, cli-testspre-test, build-ci-env
阶段 2graph-db-tests, vector-db-tests, llm-tests, example-tests, notebook-testsbasic-tests, e2e-tests
阶段 3different-os-testsbasic-tests, e2e-tests

来源: .github/workflows/test_suites.yml:88-193

基础测试工作流

基础测试(basic_tests.yml)

该工作流执行单元测试和简单的演示脚本,以验证核心库的完整性。

关键任务:

  • unit-tests:执行 uv run pytest cognee/tests/unit/ .github/workflows/basic_tests.yml:71-71
  • simple-examples:运行 examples/demos/simple_cognee_example.py .github/workflows/basic_tests.yml:103-103
  • simple-examples-baml:通过设置 STRUCTURED_OUTPUT_FRAMEWORK: "BAML" 专门测试 BAML 结构化输出框架 .github/workflows/basic_tests.yml:111-111

来源: .github/workflows/basic_tests.yml:41-144

端到端测试(e2e_tests.yml)

e2e_tests.yml 工作流测试完整的系统集成,包括服务器启动和外部服务交互。

关键任务:

  • run-server-start-test:通过运行 cognee/tests/test_cognee_server_start.py 验证 FastAPI 服务器 .github/workflows/e2e_tests.yml:69-69
  • run-telemetry-test:通过 cognee/tests/test_telemetry.py 检查匿名使用跟踪 .github/workflows/e2e_tests.yml:95-95
  • run-deduplication-test:使用 pgvector 服务容器测试数据去重逻辑 .github/workflows/e2e_tests.yml:128-170
  • run-s3-bucket-test:使用 AWS 凭证验证 S3 存储集成 .github/workflows/e2e_tests.yml:172-198

来源: .github/workflows/e2e_tests.yml:42-198

数据库与提供商矩阵

图数据库测试

graph_db_tests.yml 工作流验证 GraphDBInterface 的实现。它测试 kuzu(基于文件)、neo4j(使用专用的 setup_neo4j 操作)和 postgres(使用 pgvector 服务容器).github/workflows/graph_db_tests.yml:26-210。该工作流还包括对图模型中加权边的专项测试 .github/workflows/graph_db_tests.yml:59-72

来源: .github/workflows/graph_db_tests.yml:1-210, .github/workflows/weighted_edges_tests.yml:56-105

大语言模型提供商测试

test_llms.yml 工作流验证不同大语言模型和嵌入向量提供商的兼容性,包括 Gemini、Bedrock、Anthropic 和 OpenRouter .github/workflows/test_llms.yml:20-210

专用 CI 操作

Cognee 设置操作

cognee_setup 操作是一个复合操作,用于标准化环境准备。它会检测是否在预构建的 CI 容器内运行,以避免重复安装 .github/actions/cognee_setup/action.yml:22-30

Cognee · Cognee 设置操作 · 图 2
Cognee · Cognee 设置操作 · 图 2

来源: .github/actions/cognee_setup/action.yml:1-81

发布与部署

发布工作流(发布.yml)

通过 workflow_dispatch 手动触发,该工作流自动化完整的发布周期 .github/workflows/release.yml:1-4

  1. GitHub 发布:使用 uv version --short 创建 Git 标签,通过 tools/generate_release_notes.py 生成基于 AI 的发布说明,并创建 GitHub Release .github/workflows/release.yml:39-79
  2. PyPI 包:使用 uv build 构建分发包,并使用 uv publish 发布到 PyPI .github/workflows/release.yml:80-108
  3. Docker 镜像:构建多平台(amd64arm64)镜像,并使用 latest 和版本标签推送到 Docker Hub .github/workflows/release.yml:110-161
  4. 下游触发器:向 cognee-docscognee-community 发送仓库调度事件 .github/workflows/release.yml:162-189
  5. 通知:向 Discord 发送发布公告 .github/workflows/release.yml:190-207

来源: .github/workflows/release.yml:1-207

CI/CD 实体映射

下图将 CI/CD 工作流名称映射到它们验证的特定代码实体和测试脚本。

Cognee · CI/CD 实体映射 · 图 3
Cognee · CI/CD 实体映射 · 图 3

来源: .github/workflows/e2e_tests.yml:69, .github/workflows/basic_tests.yml:71, .github/workflows/cli_tests.yml:74, .github/workflows/weighted_edges_tests.yml:7-9, .github/workflows/graph_db_tests.yml:57

CI 管线数据流

下图展示了数据(环境变量和密钥)如何从 GitHub Actions 流入 Cognee 测试执行环境。

Cognee · CI 管线数据流 · 图 4
Cognee · CI 管线数据流 · 图 4

来源: .github/actions/cognee_setup/action.yml:51-62, .github/workflows/e2e_tests.yml:58-69, .github/workflows/test_different_operating_systems.yml:67-80