From bee9307c081b04c4c8905fa65a560d2c8f39acfb Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Thu, 10 Apr 2025 16:24:12 +0000 Subject: [PATCH] ci: Add Python 3.10, 3.11 to test matrix feat: Add basic import compatibility test Adds Python 3.10 and 3.11 to the GitHub Actions test matrix to ensure compatibility across the supported Python range (>=3.10, <3.13). Also adds a simple test_compatibility.py to catch basic import errors early, preventing regressions like the one reported in #2575 where caused issues on Python 3.10. Co-Authored-By: Joe Moura --- .github/workflows/tests.yml | 8 ++++++-- tests/test_compatibility.py | 14 ++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 tests/test_compatibility.py diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index f655dcc64..4046da231 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -11,6 +11,10 @@ env: jobs: tests: runs-on: ubuntu-latest + strategy: + matrix: + python-version: ["3.10", "3.11", "3.12"] + fail-fast: false # Allow all matrix jobs to finish even if one fails timeout-minutes: 15 steps: - name: Checkout code @@ -22,8 +26,8 @@ jobs: enable-cache: true - - name: Set up Python - run: uv python install 3.12.8 + - name: Set up Python ${{ matrix.python-version }} + run: uv python install ${{ matrix.python-version }} - name: Install the project run: uv sync --dev --all-extras diff --git a/tests/test_compatibility.py b/tests/test_compatibility.py new file mode 100644 index 000000000..90414b389 --- /dev/null +++ b/tests/test_compatibility.py @@ -0,0 +1,14 @@ +import pytest + +def test_basic_import(): + """ + Tests that the crewai package can be imported without raising exceptions. + This helps catch basic installation and dependency issues, including import + errors related to Python version compatibility. + """ + try: + import crewai + except ImportError as e: + pytest.fail(f"Failed to import crewai package: {e}") + except Exception as e: + pytest.fail(f"An unexpected error occurred during crewai import: {e}")