Skip to content

Commit c340edb

Browse files
committed
Refactored E2E test GitHub Actions
1 parent 19fbace commit c340edb

File tree

3 files changed

+67
-49
lines changed

3 files changed

+67
-49
lines changed

.github/workflows/e2e-tests.yaml

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
name: Run E2E tests
2+
on:
3+
workflow_call:
4+
inputs:
5+
python-version:
6+
required: true
7+
description: 'The version of Python to use'
8+
type: string
9+
neo4j-edition:
10+
required: true
11+
description: "The Neo4j edition to use, either 'community' or 'enterprise'"
12+
type: string
13+
14+
jobs:
15+
e2e-tests:
16+
steps:
17+
- name: Check out repository code
18+
uses: actions/checkout@v4
19+
- name: Docker Prune
20+
run: |
21+
docker system prune -af
22+
docker volume prune -f
23+
- name: Set up Python ${{ python-version }}
24+
uses: actions/setup-python@v5
25+
with:
26+
python-version: ${{ python-version }}
27+
- name: Install Poetry
28+
uses: snok/install-poetry@v1
29+
with:
30+
virtualenvs-create: true
31+
virtualenvs-in-project: true
32+
installer-parallel: true
33+
- name: Set Python version for Poetry
34+
run: poetry env use python${{ python-version }}
35+
- name: Load cached venv
36+
id: cached-poetry-dependencies
37+
uses: actions/cache@v4
38+
with:
39+
path: .venv
40+
key: ${{ runner.os }}-venv-${{ python-version }}-${{ hashFiles('**/poetry.lock') }}
41+
- name: Install dependencies
42+
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
43+
run: poetry install --no-interaction --no-cache --with dev
44+
- name: Clear Poetry cache
45+
run: poetry cache clear --all .
46+
- name: Show disk usage after Poetry installation
47+
run: |
48+
df -h
49+
- name: Wait for Weaviate to start
50+
shell: bash
51+
run: |
52+
set +e
53+
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
54+
- name: Run tests
55+
shell: bash
56+
run: |
57+
if [[ "${{ neo4j-edition }}" == "community" ]]; then
58+
poetry run pytest -m 'not enterprise_only' ./tests/e2e
59+
else
60+
poetry run pytest ./tests/e2e
61+
fi

.github/workflows/pr-e2e-tests.yaml

Lines changed: 5 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: 'Neo4j-GenAI PR E2E Tests'
1+
name: Neo4j-GenAI PR E2E Tests
22

33
on:
44
pull_request:
@@ -13,13 +13,17 @@ concurrency:
1313
jobs:
1414
e2e-tests:
1515
runs-on: ubuntu-latest
16+
uses: ./.github/workflows/e2e-tests.yaml
1617
strategy:
1718
matrix:
1819
python-version: ['3.8', '3.12']
1920
neo4j-version:
2021
- 5
2122
neo4j-edition:
2223
- enterprise
24+
with:
25+
target: ${{ matrix.python-version }}
26+
python-version: ${{ neo4j-edition }}
2327
services:
2428
t2v-transformers:
2529
image: cr.weaviate.io/semitechnologies/transformers-inference:sentence-transformers-all-MiniLM-L6-v2-onnx
@@ -45,50 +49,3 @@ jobs:
4549
ports:
4650
- 7687:7687
4751
- 7474:7474
48-
49-
steps:
50-
- name: Check out repository code
51-
uses: actions/checkout@v4
52-
- name: Docker Prune
53-
run: |
54-
docker system prune -af
55-
docker volume prune -f
56-
- name: Set up Python ${{ matrix.python-version }}
57-
uses: actions/setup-python@v5
58-
with:
59-
python-version: ${{ matrix.python-version }}
60-
- name: Install Poetry
61-
uses: snok/install-poetry@v1
62-
with:
63-
virtualenvs-create: true
64-
virtualenvs-in-project: true
65-
installer-parallel: true
66-
- name: Set Python version for Poetry
67-
run: poetry env use python${{ matrix.python-version }}
68-
- name: Load cached venv
69-
id: cached-poetry-dependencies
70-
uses: actions/cache@v4
71-
with:
72-
path: .venv
73-
key: ${{ runner.os }}-venv-${{ matrix.python-version }}-${{ hashFiles('**/poetry.lock') }}
74-
- name: Install dependencies
75-
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
76-
run: poetry install --no-interaction --no-cache --with dev
77-
- name: Clear Poetry cache
78-
run: poetry cache clear --all .
79-
- name: Show disk usage after Poetry installation
80-
run: |
81-
df -h
82-
- name: Wait for Weaviate to start
83-
shell: bash
84-
run: |
85-
set +e
86-
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
87-
- name: Run tests
88-
shell: bash
89-
run: |
90-
if [[ "${{ matrix.neo4j-edition }}" == "community" ]]; then
91-
poetry run pytest -m 'not enterprise_only' ./tests/e2e
92-
else
93-
poetry run pytest ./tests/e2e
94-
fi

.github/workflows/pr.yaml renamed to .github/workflows/pr-unit-tests.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: neo4j_genai PR
1+
name:name: Neo4j-GenAI Scheduled Unit Tests
22
on: pull_request
33

44
jobs:

0 commit comments

Comments
 (0)