| name: Run VDB Tests | |
| on: | |
| pull_request: | |
| branches: | |
| - main | |
| paths: | |
| - api/core/rag/datasource/** | |
| - docker/** | |
| - .github/workflows/vdb-tests.yml | |
| concurrency: | |
| group: vdb-tests-${{ github.head_ref || github.run_id }} | |
| cancel-in-progress: true | |
| jobs: | |
| test: | |
| name: VDB Tests | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: | |
| - "3.10" | |
| - "3.11" | |
| - "3.12" | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Install Poetry | |
| uses: abatilo/actions-poetry@v3 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| cache: poetry | |
| cache-dependency-path: api/poetry.lock | |
| - name: Check Poetry lockfile | |
| run: | | |
| poetry check -C api --lock | |
| poetry show -C api | |
| - name: Install dependencies | |
| run: poetry install -C api --with dev | |
| - name: Set up dotenvs | |
| run: | | |
| cp docker/.env.example docker/.env | |
| cp docker/middleware.env.example docker/middleware.env | |
| - name: Expose Service Ports | |
| run: sh .github/workflows/expose_service_ports.sh | |
| - name: Set up Vector Stores (Weaviate, Qdrant, PGVector, Milvus, PgVecto-RS, Chroma, MyScale, ElasticSearch, Couchbase) | |
| uses: hoverkraft-tech/compose-action@v2.0.2 | |
| with: | |
| compose-file: | | |
| docker/docker-compose.yaml | |
| services: | | |
| weaviate | |
| qdrant | |
| couchbase-server | |
| etcd | |
| minio | |
| milvus-standalone | |
| pgvecto-rs | |
| pgvector | |
| chroma | |
| elasticsearch | |
| - name: Test Vector Stores | |
| run: poetry run -C api bash dev/pytest/pytest_vdb.sh | |
