name: Tests on: push: branches: [main, develop] pull_request: branches: [main, develop] jobs: test-linux: runs-on: ubuntu-latest strategy: matrix: python-version: ["3.9", "3.11", "3.13"] steps: - uses: actions/checkout@v7 - uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} cache: 'pip' - run: pip install -e ".[dev]" - run: python -m pytest tests/ -v --ignore=tests/benchmarks --cov=mempalace --cov-report=term-missing --cov-fail-under=80 --durations=10 test-windows: runs-on: windows-latest steps: - uses: actions/checkout@v7 - uses: actions/setup-python@v6 with: python-version: "3.13" cache: 'pip' - run: pip install -e ".[dev]" # ChromaDB's rust HNSW core intermittently fails compaction on Windows # ("Failed to apply logs to the hnsw segment writer") regardless of our # code — a long-standing, non-reproducible-on-Linux/macOS flake. Retry # ONLY that specific transient error (via --only-rerun) so real, # deterministic failures still fail on the first run. Linux/macOS jobs # deliberately run with no reruns so genuine regressions surface there. - run: python -m pytest tests/ -v --ignore=tests/benchmarks --cov=mempalace --cov-report=term-missing --cov-fail-under=80 --durations=10 --reruns 2 --reruns-delay 5 --only-rerun "Failed to apply logs to the hnsw segment writer" test-macos: runs-on: macos-latest steps: - uses: actions/checkout@v7 - uses: actions/setup-python@v6 with: python-version: "3.13" cache: 'pip' - run: pip install -e ".[dev]" - run: python -m pytest tests/ -v --ignore=tests/benchmarks --cov=mempalace --cov-report=term-missing --cov-fail-under=80 --durations=10 lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v7 - uses: actions/setup-python@v6 with: python-version: "3.11" cache: 'pip' # Keep this pin identical to the `ruff==` pin in pyproject.toml # ([project.optional-dependencies].dev and [dependency-groups].dev) # so CI and `pip install -e ".[dev]"` format/lint identically. - run: pip install "ruff==0.15.14" - run: ruff check . - run: ruff format --check .