Skip to content

remove setup.cfg

remove setup.cfg #254

Workflow file for this run

name: Test Suite
'on':
push:
branches:
- main
pull_request: {}
concurrency:
group: test-${{github.ref}}
cancel-in-progress: true
jobs:
conda:
name: Conda Python ${{matrix.python}} on ${{matrix.platform}}
runs-on: ${{matrix.platform}}
timeout-minutes: 30
defaults:
run:
shell: bash -el {0}
strategy:
fail-fast: false
matrix:
python:
- '3.10'
- '3.11'
platform:
- ubuntu-latest
- macos-latest
- windows-latest
- macos-13
steps:
- name: πŸ›’ Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: πŸ‘’ Generate Conda environment file
run: |
pipx run ./utils/conda-tool.py --env -o ci-environment.yml -e all pyproject.toml test-requirements.txt
- id: setup
name: πŸ“¦ Set up Conda environment
uses: mamba-org/setup-micromamba@v1
with:
environment-file: ci-environment.yml
environment-name: lkpy
cache-environment: true
init-shell: bash
- name: πŸ” Inspect environment
run: |
which -a python
python -V
numba -s
- name: πŸƒπŸ»β€βž‘οΈ Test LKPY
run: |
python -m pytest --cov=lenskit --verbose --log-file=test.log --durations=25
- name: πŸ“ Coverage results
run: coverage xml
- name: πŸ“€ Upload test results
uses: actions/upload-artifact@v3
with:
name: test-conda-${{matrix.platform}}-py${{matrix.python}}
path: |
test*.log
coverage.xml
vanilla:
name: Vanilla Python ${{matrix.python}} on ${{matrix.platform}}
runs-on: ${{matrix.platform}}
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
python:
- '3.10'
- '3.11'
platform:
- ubuntu-latest
- macos-latest
- windows-latest
steps:
- name: πŸ›’ Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: 🐍 Set up Python
id: install-python
uses: actions/setup-python@v5
with:
python-version: ${{matrix.python}}
- name: πŸ•ΆοΈ Set up uv
run: |
pip install -U 'uv>=0.1.15'
- name: πŸ“¦ Set up Python dependencies
id: install-deps
run: |
uv pip install --python $PYTHON -r test-requirements.txt -e .
shell: bash
env:
PYTHON: ${{steps.install-python.outputs.python-path}}
UV_EXTRA_INDEX_URL: https://download.pytorch.org/whl/cpu
UV_INDEX_STRATEGY: unsafe-first-match
- name: πŸ” Inspect environment
run: |
which -a python
python -V
numba -s
- name: πŸƒπŸ»β€βž‘οΈ Test LKPY
run: |
python -m pytest --cov=lenskit --verbose --log-file=test.log --durations=25
- name: πŸ“ Coverage results
run: coverage xml
- name: πŸ“€ Upload test results
uses: actions/upload-artifact@v3
with:
name: test-vanilla-${{matrix.platform}}-py${{matrix.python}}
path: |
test*.log
coverage.xml
nojit:
name: Non-JIT test coverage
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: πŸ›’ Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: 🐍 Set up Python
id: install-python
uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: πŸ•ΆοΈ Set up uv
run: |
pip install -U 'uv>=0.1.15'
- name: πŸ“¦ Set up Python dependencies
id: install-deps
run: |
uv pip install --python $PYTHON -r test-requirements.txt -e .
shell: bash
env:
PYTHON: ${{steps.install-python.outputs.python-path}}
UV_EXTRA_INDEX_URL: https://download.pytorch.org/whl/cpu
UV_INDEX_STRATEGY: unsafe-first-match
- name: πŸ” Inspect environment
run: |
which -a python
python -V
numba -s
- name: πŸƒπŸ»β€βž‘οΈ Test LKPY
run: |
python -m pytest --cov=lenskit --verbose --log-file=test.log --durations=25 -m "not slow"
env:
NUMBA_DISABLE_JIT: 1
PYTORCH_JIT: 0
- name: πŸ“ Coverage results
run: coverage xml
- name: πŸ“€ Upload test results
uses: actions/upload-artifact@v3
with:
name: test-nojit
path: |
test*.log
coverage.xml
mindep:
name: Minimal dependency tests
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: πŸ›’ Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: 🐍 Set up Python
id: install-python
uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: πŸ•ΆοΈ Set up uv
run: |
pip install -U 'uv>=0.1.15'
- name: πŸ“¦ Set up Python dependencies
id: install-deps
run: |
uv pip install --python $PYTHON -r test-requirements.txt -e . --resolution=lowest-direct
shell: bash
env:
PYTHON: ${{steps.install-python.outputs.python-path}}
UV_EXTRA_INDEX_URL: https://download.pytorch.org/whl/cpu
UV_INDEX_STRATEGY: unsafe-first-match
- name: πŸ” Inspect environment
run: |
which -a python
python -V
numba -s
- name: πŸƒπŸ»β€βž‘οΈ Test LKPY
run: |
python -m pytest --cov=lenskit --verbose --log-file=test.log --durations=25
- name: πŸ“ Coverage results
run: coverage xml
- name: πŸ“€ Upload test results
uses: actions/upload-artifact@v3
with:
name: test-mindep
path: |
test*.log
coverage.xml
examples:
name: Demos, Examples, and Docs
runs-on: ubuntu-latest
defaults:
run:
shell: bash -el {0}
steps:
- name: πŸ›’ Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: πŸ‘’ Generate Conda environment file
run: |
pipx run ./utils/conda-tool.py --env -o ci-environment.yml -e all pyproject.toml dev-requirements.txt
- id: setup
name: πŸ“¦ Set up Conda environment
uses: mamba-org/setup-micromamba@v1
with:
environment-file: ci-environment.yml
environment-name: lkpy
cache-environment: true
init-shell: bash
- name: Cache ML data
uses: actions/cache@v2
with:
path: |
data
!data/*.zip
key: test-mldata-000
- name: Download ML data
run: |
python -m lenskit.datasets.fetch ml-100k
python -m lenskit.datasets.fetch ml-1m
python -m lenskit.datasets.fetch ml-10m
python -m lenskit.datasets.fetch ml-20m
- name: Install for testing
run: |
pip install --no-deps -e .
- name: Run Eval Tests
run: |
python -m pytest --cov=lenskit -m eval --log-file test-eval.log
python -m pytest --cov=lenskit --cov-append -m realdata --log-file test-realdata.log
- name: Validate doc notebooks
run: |
cp docs/*.ipynb data
python -m pytest --nbval-lax --cov=lenskit --cov-append data --log-file test-docs.log
- name: πŸ“ Coverage results
run: coverage xml
- name: πŸ“€ Upload test results
uses: actions/upload-artifact@v3
with:
name: test-examples
path: |
test*.log
coverage.xml
results:
name: Test suite results
runs-on: ubuntu-latest
needs:
- conda
- vanilla
- nojit
- mindep
- examples
steps:
- name: πŸ›’ Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: πŸ“₯ Download test artifacts
uses: actions/download-artifact@v3
with:
path: test-logs
- name: πŸ“‹ List log files
run: ls -lR test-logs
- name: βœ… Upload coverage
uses: codecov/codecov-action@v3
with:
directory: test-logs/
env:
CODECOV_TOKEN: 5cdb6ef4-e80b-44ce-b88d-1402e4dfb781