refactor: Make CI/CD faster add more OS tests

This commit is contained in:
Igor Ilic 2025-08-26 21:05:30 +02:00
parent 8c69653912
commit 65542ecec7
3 changed files with 96 additions and 36 deletions

View file

@ -153,31 +153,6 @@ jobs:
EMBEDDING_API_VERSION: ${{ secrets.EMBEDDING_API_VERSION }} EMBEDDING_API_VERSION: ${{ secrets.EMBEDDING_API_VERSION }}
run: uv run python ./cognee/tests/test_deduplication.py run: uv run python ./cognee/tests/test_deduplication.py
run-deletion-test:
name: Deletion Test
runs-on: ubuntu-22.04
steps:
- name: Check out
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Cognee Setup
uses: ./.github/actions/cognee_setup
with:
python-version: '3.11.x'
- name: Run Deletion Tests
env:
ENV: 'dev'
LLM_API_KEY: ${{ secrets.OPENAI_API_KEY }} # Test needs OpenAI endpoint to handle multimedia
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
EMBEDDING_MODEL: ${{ secrets.EMBEDDING_MODEL }}
EMBEDDING_ENDPOINT: ${{ secrets.EMBEDDING_ENDPOINT }}
EMBEDDING_API_KEY: ${{ secrets.EMBEDDING_API_KEY }}
EMBEDDING_API_VERSION: ${{ secrets.EMBEDDING_API_VERSION }}
run: uv run python ./cognee/tests/test_deletion.py
run-s3-bucket-test: run-s3-bucket-test:
name: S3 Bucket Test name: S3 Bucket Test
runs-on: ubuntu-22.04 runs-on: ubuntu-22.04

View file

@ -1,4 +1,4 @@
name: Reusable Python Version Tests name: Tests to run on different Operating Systems
on: on:
workflow_call: workflow_call:
@ -34,13 +34,13 @@ env:
ENV: 'dev' ENV: 'dev'
jobs: jobs:
run-python-version-tests: run-unit-tests:
name: Python ${{ matrix.python-version }} on ${{ matrix.os }} name: Unit tests ${{ matrix.python-version }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
strategy: strategy:
matrix: matrix:
python-version: ${{ fromJSON(inputs.python-versions) }} python-version: ${{ fromJSON(inputs.python-versions) }}
os: [ubuntu-22.04, macos-13, macos-15] os: [ubuntu-22.04, macos-13, macos-15, windows-latest]
fail-fast: false fail-fast: false
steps: steps:
- name: Check out - name: Check out
@ -69,6 +69,24 @@ jobs:
EMBEDDING_ENDPOINT: ${{ secrets.EMBEDDING_ENDPOINT }} EMBEDDING_ENDPOINT: ${{ secrets.EMBEDDING_ENDPOINT }}
EMBEDDING_API_KEY: ${{ secrets.EMBEDDING_API_KEY }} EMBEDDING_API_KEY: ${{ secrets.EMBEDDING_API_KEY }}
EMBEDDING_API_VERSION: ${{ secrets.EMBEDDING_API_VERSION }} EMBEDDING_API_VERSION: ${{ secrets.EMBEDDING_API_VERSION }}
run-integration-tests:
name: Integration tests ${{ matrix.python-version }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
python-version: ${{ fromJSON(inputs.python-versions) }}
os: [ ubuntu-22.04, macos-13, macos-15, windows-latest ]
fail-fast: false
steps:
- name: Check out
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Cognee Setup
uses: ./.github/actions/cognee_setup
with:
python-version: ${{ matrix.python-version }}
- name: Run integration tests - name: Run integration tests
shell: bash shell: bash
@ -87,6 +105,25 @@ jobs:
EMBEDDING_API_KEY: ${{ secrets.EMBEDDING_API_KEY }} EMBEDDING_API_KEY: ${{ secrets.EMBEDDING_API_KEY }}
EMBEDDING_API_VERSION: ${{ secrets.EMBEDDING_API_VERSION }} EMBEDDING_API_VERSION: ${{ secrets.EMBEDDING_API_VERSION }}
run-library-test:
name: Library test ${{ matrix.python-version }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
python-version: ${{ fromJSON(inputs.python-versions) }}
os: [ ubuntu-22.04, macos-13, macos-15, windows-latest ]
fail-fast: false
steps:
- name: Check out
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Cognee Setup
uses: ./.github/actions/cognee_setup
with:
python-version: ${{ matrix.python-version }}
- name: Run default basic pipeline - name: Run default basic pipeline
shell: bash shell: bash
env: env:
@ -104,12 +141,60 @@ jobs:
EMBEDDING_API_VERSION: ${{ secrets.EMBEDDING_API_VERSION }} EMBEDDING_API_VERSION: ${{ secrets.EMBEDDING_API_VERSION }}
run: uv run python ./cognee/tests/test_library.py run: uv run python ./cognee/tests/test_library.py
run-build-test:
name: Build test ${{ matrix.python-version }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
python-version: ${{ fromJSON(inputs.python-versions) }}
os: [ ubuntu-22.04, macos-13, macos-15, windows-latest ]
fail-fast: false
steps:
- name: Check out
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Cognee Setup
uses: ./.github/actions/cognee_setup
with:
python-version: ${{ matrix.python-version }}
- name: Build with uv - name: Build with uv
shell: bash shell: bash
run: uv build run: uv build
- name: Install Package - name: Install Package
if: ${{ !contains(matrix.os, 'windows') }}
run: | run: |
cd dist cd dist
pip install *.whl pip install *.whl
run-deletion-test:
name: Deletion test ${{ matrix.python-version }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
python-version: ${{ fromJSON(inputs.python-versions) }}
os: [ ubuntu-22.04, macos-13, macos-15, windows-latest ]
fail-fast: false
steps:
- name: Check out
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Cognee Setup
uses: ./.github/actions/cognee_setup
with:
python-version: ${{ matrix.python-version }}
- name: Run Deletion Tests
env:
ENV: 'dev'
LLM_API_KEY: ${{ secrets.OPENAI_API_KEY }} # Test needs OpenAI endpoint to handle multimedia
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
EMBEDDING_MODEL: ${{ secrets.EMBEDDING_MODEL }}
EMBEDDING_ENDPOINT: ${{ secrets.EMBEDDING_ENDPOINT }}
EMBEDDING_API_KEY: ${{ secrets.EMBEDDING_API_KEY }}
EMBEDDING_API_VERSION: ${{ secrets.EMBEDDING_API_VERSION }}
run: uv run python ./cognee/tests/test_deletion.py

View file

@ -68,10 +68,10 @@ jobs:
uses: ./.github/workflows/notebooks_tests.yml uses: ./.github/workflows/notebooks_tests.yml
secrets: inherit secrets: inherit
python-version-tests: different-operating-systems-tests:
name: Python Version Tests name: Python Operating Systems Tests
needs: [basic-tests, e2e-tests, cli-tests] needs: [basic-tests, e2e-tests, cli-tests]
uses: ./.github/workflows/python_version_tests.yml uses: ./.github/workflows/test_different_operating_systems.yml
with: with:
python-versions: '["3.10.x", "3.11.x", "3.12.x"]' python-versions: '["3.10.x", "3.11.x", "3.12.x"]'
secrets: inherit secrets: inherit
@ -124,7 +124,7 @@ jobs:
cli-tests, cli-tests,
graph-db-tests, graph-db-tests,
notebook-tests, notebook-tests,
python-version-tests, different-operating-systems-tests,
vector-db-tests, vector-db-tests,
example-tests, example-tests,
gemini-tests, gemini-tests,
@ -144,7 +144,7 @@ jobs:
cli-tests, cli-tests,
graph-db-tests, graph-db-tests,
notebook-tests, notebook-tests,
python-version-tests, different-operating-systems-tests,
vector-db-tests, vector-db-tests,
example-tests, example-tests,
db-examples-tests, db-examples-tests,
@ -165,7 +165,7 @@ jobs:
"${{ needs.cli-tests.result }}" == "success" && "${{ needs.cli-tests.result }}" == "success" &&
"${{ needs.graph-db-tests.result }}" == "success" && "${{ needs.graph-db-tests.result }}" == "success" &&
"${{ needs.notebook-tests.result }}" == "success" && "${{ needs.notebook-tests.result }}" == "success" &&
"${{ needs.python-version-tests.result }}" == "success" && "${{ needs.different-operating-systems-tests.result }}" == "success" &&
"${{ needs.vector-db-tests.result }}" == "success" && "${{ needs.vector-db-tests.result }}" == "success" &&
"${{ needs.example-tests.result }}" == "success" && "${{ needs.example-tests.result }}" == "success" &&
"${{ needs.db-examples-tests.result }}" == "success" && "${{ needs.db-examples-tests.result }}" == "success" &&