Skip to content

👷 Run Qdrant in CI for integration tests#12

Merged
ebigunso merged 8 commits into
mainfrom
feature/2025-08-14/run-qdrant-in-ci
Aug 14, 2025
Merged

👷 Run Qdrant in CI for integration tests#12
ebigunso merged 8 commits into
mainfrom
feature/2025-08-14/run-qdrant-in-ci

Conversation

@ebigunso

@ebigunso ebigunso commented Aug 14, 2025

Copy link
Copy Markdown
Owner

Motivation and Context

  • Integration tests need to run against a live vector database in CI to validate Qdrant-backed functionality end-to-end.
  • This adds a GitHub Actions workflow that provisions a Qdrant service container during CI so tests exercise real DB behavior instead of mocks.
  • Fixes: N/A

Description

High-level overview:

  • Adds .github/workflows/ci.yml.
  • Starts a qdrant/qdrant:v1 service container, exposes port 6333, and blocks until the /readyz endpoint is healthy before running tests.
  • Sets environment variables consumed by Settings::load():
    QDRANT_CONNECTION_STRING: ${{ vars.QDRANT_CONNECTION_STRING }}
    OXIGRAPH_CONNECTION_STRING: ${{ vars.OXIGRAPH_CONNECTION_STRING }}
    OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
    EMBEDDING_MODEL: ${{ vars.EMBEDDING_MODEL }}
    
  • Installs the Rust toolchain, and runs cargo check and cargo test and cargo clippy.

If helpful:

  • CI validates integration with the Qdrant-backed VectorMemoryRepository and the OpenAI embedding path when OPENAI_API_KEY is available.

Checklist

  • Code builds with no errors or warnings
    cargo check --all-targets
  • Unit tests pass
    cargo test --verbose
  • Clippy passes with warnings denied
    cargo clippy --all-targets -- -D warnings
  • cargo fmt has been run
  • Documentation updated where needed
  • BREAKING CHANGE? No
  • I didn’t break anyone 😊

Additional Notes (optional)

  • Tests generate unique collection names and clean them up; a single ephemeral Qdrant instance is safe even with parallel tests.
  • Ensure OPENAI_API_KEY is configured in repository secrets so CI can exercise OpenAIEmbeddingRepository. For forked PRs without secrets, consider a follow-up to provide a mock embedding repository under a CI feature flag.

@ebigunso ebigunso changed the title ci: run Qdrant in CI for integration tests 👷 Run Qdrant in CI for integration tests Aug 14, 2025
@ebigunso ebigunso self-assigned this Aug 14, 2025
@ebigunso ebigunso merged commit 4709cd5 into main Aug 14, 2025
2 of 3 checks passed
@ebigunso ebigunso deleted the feature/2025-08-14/run-qdrant-in-ci branch August 14, 2025 15:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant