docs: migrate embedder→embedding_model and require vectordb across tool docs; add provider examples (en/ko/pt-BR) #7116
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Run Tests | |
| on: [pull_request] | |
| permissions: | |
| contents: read | |
| env: | |
| OPENAI_API_KEY: fake-api-key | |
| PYTHONUNBUFFERED: 1 | |
| BRAVE_API_KEY: fake-brave-key | |
| SNOWFLAKE_USER: fake-snowflake-user | |
| SNOWFLAKE_PASSWORD: fake-snowflake-password | |
| SNOWFLAKE_ACCOUNT: fake-snowflake-account | |
| SNOWFLAKE_WAREHOUSE: fake-snowflake-warehouse | |
| SNOWFLAKE_DATABASE: fake-snowflake-database | |
| SNOWFLAKE_SCHEMA: fake-snowflake-schema | |
| EMBEDCHAIN_DB_URI: sqlite:///test.db | |
| jobs: | |
| tests: | |
| name: tests (${{ matrix.python-version }}) | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| strategy: | |
| fail-fast: true | |
| matrix: | |
| python-version: ['3.10', '3.11', '3.12', '3.13'] | |
| group: [1, 2, 3, 4, 5, 6, 7, 8] | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 # Fetch all history for proper diff | |
| - name: Restore global uv cache | |
| id: cache-restore | |
| uses: actions/cache/restore@v4 | |
| with: | |
| path: | | |
| ~/.cache/uv | |
| ~/.local/share/uv | |
| .venv | |
| key: uv-main-py${{ matrix.python-version }}-${{ hashFiles('uv.lock') }} | |
| restore-keys: | | |
| uv-main-py${{ matrix.python-version }}- | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v6 | |
| with: | |
| version: "0.8.4" | |
| python-version: ${{ matrix.python-version }} | |
| enable-cache: false | |
| - name: Install the project | |
| run: uv sync --all-groups --all-extras | |
| - name: Restore test durations | |
| uses: actions/cache/restore@v4 | |
| with: | |
| path: .test_durations_py* | |
| key: test-durations-py${{ matrix.python-version }} | |
| - name: Run tests (group ${{ matrix.group }} of 8) | |
| run: | | |
| PYTHON_VERSION_SAFE=$(echo "${{ matrix.python-version }}" | tr '.' '_') | |
| DURATION_FILE="../../.test_durations_py${PYTHON_VERSION_SAFE}" | |
| # Temporarily always skip cached durations to fix test splitting | |
| # When durations don't match, pytest-split runs duplicate tests instead of splitting | |
| echo "Using even test splitting (duration cache disabled until fix merged)" | |
| DURATIONS_ARG="" | |
| # Original logic (disabled temporarily): | |
| # if [ ! -f "$DURATION_FILE" ]; then | |
| # echo "No cached durations found, tests will be split evenly" | |
| # DURATIONS_ARG="" | |
| # elif git diff origin/${{ github.base_ref }}...HEAD --name-only 2>/dev/null | grep -q "^tests/.*\.py$"; then | |
| # echo "Test files have changed, skipping cached durations to avoid mismatches" | |
| # DURATIONS_ARG="" | |
| # else | |
| # echo "No test changes detected, using cached test durations for optimal splitting" | |
| # DURATIONS_ARG="--durations-path=${DURATION_FILE}" | |
| # fi | |
| cd lib/crewai && uv run pytest \ | |
| --block-network \ | |
| --timeout=30 \ | |
| -vv \ | |
| --splits 8 \ | |
| --group ${{ matrix.group }} \ | |
| $DURATIONS_ARG \ | |
| --durations=10 \ | |
| -n auto \ | |
| --maxfail=3 | |
| - name: Run tool tests (group ${{ matrix.group }} of 8) | |
| run: | | |
| cd lib/crewai-tools && uv run pytest \ | |
| --block-network \ | |
| --timeout=30 \ | |
| -vv \ | |
| --splits 8 \ | |
| --group ${{ matrix.group }} \ | |
| --durations=10 \ | |
| -n auto \ | |
| --maxfail=3 | |
| - name: Save uv caches | |
| if: steps.cache-restore.outputs.cache-hit != 'true' | |
| uses: actions/cache/save@v4 | |
| with: | |
| path: | | |
| ~/.cache/uv | |
| ~/.local/share/uv | |
| .venv | |
| key: uv-main-py${{ matrix.python-version }}-${{ hashFiles('uv.lock') }} |