Skip to content

Neo4j-GraphRAG Scheduled E2E Tests #247

Neo4j-GraphRAG Scheduled E2E Tests

Neo4j-GraphRAG Scheduled E2E Tests #247

name: 'Neo4j-GraphRAG Scheduled E2E Tests'
on:
schedule:
- cron: '0 6 * * 1-5' # Runs at 6am on working days
push:
branches:
- main
jobs:
e2e-tests:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.9', '3.10', '3.11', '3.12']
neo4j-tag:
- '5-community'
- '5-enterprise'
- 'latest'
services:
t2v-transformers:
image: cr.weaviate.io/semitechnologies/transformers-inference:sentence-transformers-all-MiniLM-L6-v2-onnx
env:
ENABLE_CUDA: '0'
credentials:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
weaviate:
image: cr.weaviate.io/semitechnologies/weaviate:1.25.1
env:
TRANSFORMERS_INFERENCE_API: 'http://t2v-transformers:8080'
AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: 'true'
DEFAULT_VECTORIZER_MODULE: 'text2vec-transformers'
ENABLE_MODULES: 'text2vec-transformers'
CLUSTER_HOSTNAME: 'node1'
ports:
- 8080:8080
- 50051:50051
credentials:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
neo4j:
image: neo4j:${{ matrix.neo4j-tag }}
env:
NEO4J_AUTH: neo4j/password
NEO4J_ACCEPT_LICENSE_AGREEMENT: 'eval'
NEO4J_PLUGINS: '["apoc"]'
ports:
- 7687:7687
- 7474:7474
credentials:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
qdrant:
image: qdrant/qdrant
ports:
- 6333:6333
steps:
- name: Install graphviz package
run: sudo apt install graphviz graphviz-dev
- name: Check out repository code
uses: actions/checkout@v4
- name: Docker Prune
run: |
docker system prune -af
docker volume prune -f
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install Poetry
uses: snok/install-poetry@v1
with:
virtualenvs-create: true
virtualenvs-in-project: true
installer-parallel: true
- name: Set Python version for Poetry
run: poetry env use python${{ matrix.python-version }}
- name: Load cached venv
id: cached-poetry-dependencies
uses: actions/cache@v4
with:
path: .venv
key: ${{ runner.os }}-venv-${{ matrix.python-version }}-${{ hashFiles('**/poetry.lock') }}
- name: Install dependencies
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
run: poetry install --no-interaction --no-cache --with dev --all-extras
- name: Clear Poetry cache
run: poetry cache clear --all .
- name: Show disk usage after Poetry installation
run: |
df -h
- name: Wait for Weaviate to start
shell: bash
run: |
set +e
count=0; until curl -s --fail localhost:8080/v1/.well-known/ready; do ((count++)); [ $count -ge 10 ] && echo "Reached maximum retry limit" && exit 1; sleep 15; done
- name: Run tests
shell: bash
run: |
if [[ "${{ matrix.neo4j-tag }}" == "latest" || "${{ matrix.neo4j-tag }}" == *-community ]]; then
poetry run pytest -m 'not enterprise_only' ./tests/e2e
else
poetry run pytest ./tests/e2e
fi