chore(deps-dev): update hypothesis requirement from >=6.165.0 to >=6.165.9 #417
Workflow file for this run
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: CI | |
| on: | |
| push: | |
| branches: [master] | |
| paths-ignore: | |
| - 'docs/**' | |
| pull_request: | |
| branches: [master] | |
| permissions: | |
| contents: read | |
| jobs: | |
| lint: | |
| name: Lint & Format | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.12" | |
| - run: pip install ruff | |
| - name: Ruff lint | |
| run: ruff check mcp_server/ tests/ | |
| - name: Ruff format check | |
| run: ruff format --check mcp_server/ tests/ | |
| test: | |
| name: Test (Python ${{ matrix.python-version }}, ${{ matrix.os }}) | |
| needs: lint | |
| runs-on: ${{ matrix.os }} | |
| # Pillar 4 (Versatility): 3 OS x 3 Python = 9 combos, all required. | |
| # All cells were green for two consecutive Quality Gate cycles | |
| # (Onda 3 + Onda 4) on macOS and Python 3.13 — promoted from | |
| # experimental to required at v3.9.0. | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, windows-latest, macos-latest] | |
| python-version: ["3.11", "3.12", "3.13"] | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -r requirements.txt | |
| pip install pytest pytest-cov pytest-rerunfailures hypothesis psutil numpy pyyaml | |
| - name: Run tests with coverage | |
| # Force bash on Windows too — the default pwsh shell propagates ANY | |
| # stderr write as a non-zero exit code through its $LASTEXITCODE | |
| # handling in some configurations, even when pytest itself exited | |
| # cleanly. Bash inherits pytest's actual return code. | |
| shell: bash | |
| env: | |
| # Forbid any HuggingFace network call. Tests must mock TextEmbedding | |
| # / TextCrossEncoder. A leaked real download (race condition spawning | |
| # a daemon thread, missing mock, etc.) would otherwise hang on slow | |
| # Windows runners and produce "ValueError: I/O operation on closed | |
| # file" during interpreter shutdown. With OFFLINE=1, any leak fails | |
| # fast and visibly. | |
| HF_HUB_OFFLINE: "1" | |
| TRANSFORMERS_OFFLINE: "1" | |
| # Disable HF Hub download progress bars (they spawn worker threads | |
| # that race against pytest's interpreter shutdown). | |
| HF_HUB_DISABLE_PROGRESS_BARS: "1" | |
| # --reruns=1 retries flaky tests once (Pillar 2: Stability). When | |
| # any test had to rerun, the job still passes but pytest annotates | |
| # the rerun in the JUnit report — we surface that via a follow-up | |
| # step in quality-gate.yml so flakes do not silently accumulate. | |
| run: pytest tests/ -v --cov=mcp_server --cov-report=xml --cov-report=term-missing --reruns=1 --junit-xml=junit.xml | |
| - name: Upload coverage | |
| if: matrix.python-version == '3.12' && matrix.os == 'ubuntu-latest' | |
| uses: codecov/codecov-action@v7 | |
| with: | |
| file: coverage.xml | |
| fail_ci_if_error: false | |
| env: | |
| CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} |