WIP: extremes and pytest #7
This file contains 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: PyTest | |
on: | |
pull_request: | |
push: | |
branches: [main] | |
jobs: | |
pytest-38: | |
strategy: | |
matrix: | |
python-version: ["3.8"] | |
os: [windows-latest, ubuntu-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install uv | |
uses: astral-sh/setup-uv@v3 | |
with: | |
enable-cache: "true" | |
cache-suffix: ${{ matrix.python-version }} | |
cache-dependency-glob: "**requirements*.txt" | |
- name: sync | |
run: uv sync --extra dev --upgrade | |
- name: install-reqs | |
run: uv pip install --upgrade tox virtualenv setuptools --system | |
- name: show-deps | |
run: uv pip freeze | |
- name: Run pytest | |
run: uv run pytest tests --cov=narwhals --cov=tests --cov-fail-under=85 | |
- name: Run doctests | |
if: startsWith(matrix.os, 'windows') != true | |
run: uv run pytest narwhals --doctest-modules | |
pytest-windows: | |
strategy: | |
matrix: | |
python-version: ["3.9", "3.10", "3.11", "3.12"] | |
os: [windows-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install uv | |
uses: astral-sh/setup-uv@v3 | |
with: | |
enable-cache: "true" | |
cache-suffix: ${{ matrix.python-version }} | |
cache-dependency-glob: "**requirements*.txt" | |
- name: sync | |
run: uv sync --extra dev --upgrade | |
- name: install-reqs | |
run: uv pip install --upgrade tox virtualenv setuptools --system | |
- name: install-modin | |
run: uv pip install --upgrade modin[dask] --system | |
- name: show-deps | |
run: uv pip freeze | |
- name: Run pytest | |
run: uv run pytest tests --cov=narwhals --cov=tests --runslow --cov-fail-under=95 | |
- name: Run doctests | |
run: uv run pytest narwhals --doctest-modules | |
pytest-coverage: | |
strategy: | |
matrix: | |
python-version: ["3.9", "3.10", "3.11", "3.12"] | |
os: [ubuntu-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install uv | |
uses: astral-sh/setup-uv@v3 | |
with: | |
enable-cache: "true" | |
cache-suffix: ${{ matrix.python-version }} | |
cache-dependency-glob: "**requirements*.txt" | |
- name: sync | |
run: uv sync --extra dev --upgrade | |
- name: install-reqs | |
run: uv pip install --upgrade tox virtualenv setuptools --system | |
- name: install-modin | |
run: uv pip install --upgrade modin[dask] --system | |
- name: show-deps | |
run: uv pip freeze | |
- name: install ibis | |
run: uv pip install ibis-framework[duckdb]>=6.0.0 --system | |
# Ibis puts upper bounds on dependencies, and requires Python3.10+, | |
# which messes with other dependencies on lower Python versions | |
if: matrix.python-version == '3.12' | |
- name: Run pytest | |
run: uv run pytest tests --cov=narwhals --cov=tests --cov-fail-under=100 --runslow | |
- name: Run doctests | |
run: uv run pytest narwhals --doctest-modules |