Skip to content

Drop support for Python 3.8 and 3.9 #765

Drop support for Python 3.8 and 3.9

Drop support for Python 3.8 and 3.9 #765

Workflow file for this run

name: Test Suite
on:
push:
branches:
- main
pull_request:
defaults:
run:
shell: bash -l {0}
concurrency:
group: test-${{github.ref}}
cancel-in-progress: true
jobs:
conda:
name: Conda Python ${{matrix.python}} on ${{matrix.platform}}
runs-on: ${{matrix.platform}}-latest
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
python:
- "3.10"
# - "3.11"
platform:
- macos
- windows
- ubuntu
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: 👢 Set up Conda environment
uses: lenskit/lkbuild/actions/setup-conda-env@main
id: setup
with:
extras: sklearn
python-version: ${{matrix.python}}
- name: Inspect environment
run: |
python -V
numba -s
- name: Test LKPY
run: |
python -m pytest --cov=lenskit --verbose --log-file=test.log
env:
NUMBA_NUM_THREADS: 4
MKL_THREADING_LAYER: sequential
OMP_NUM_THREADS: 1
OPENBLAS_NUM_THREADS: 1
- name: Non-JIT Test Coverage
if: runner.os == 'Linux'
env:
NUMBA_DISABLE_JIT: 1
run: |
python -m pytest --cov=lenskit --cov-append -m 'not slow' --log-file=test-nojit.log
- name: Process Test Results
uses: lenskit/lkbuild/actions/save-test-results@main
with:
artifact-name: test-conda-${{matrix.platform}}-py${{matrix.python}}-${{matrix.blas}}
check-docs:
name: Docs, Examples, and Eval
timeout-minutes: 30
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: 👢 Set up Conda environment
uses: lenskit/lkbuild/actions/setup-conda-env@main
id: setup
with:
python-version: '3.10'
extras: demo
- name: Inspect Conda environment
run: |
echo "Conda environment info"
conda info
echo "Conda environment package list"
conda list
- name: Cache ML data
uses: actions/cache@v2
with:
path: |
data
!data/*.zip
key: test-mldata-000
- name: Download ML Data
run: |
lkbuild fetch-data -d ml-100k
lkbuild fetch-data -d ml-1m
lkbuild fetch-data -d ml-10m
lkbuild fetch-data -d ml-20m
- name: Install for Testing
run: |
flit install --deps none -s
- 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: Validate Examples
# run: |
# python -m pytest --nbval-lax --cov=lenskit --cov-append examples --log-file test-examples.log
- name: Process Test Results
uses: lenskit/lkbuild/actions/save-test-results@main
with:
artifact-name: test-check-docs
vanilla:
name: Vanilla Python ${{matrix.python}} on ${{matrix.platform}}
runs-on: ${{matrix.platform}}-latest
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
python:
- "3.10"
- "3.11"
platform:
- windows
- ubuntu
steps:
- name: Check out source
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Set up Python and environment
uses: lenskit/lkbuild/actions/setup-vanilla-env@main
with:
python-version: ${{matrix.python}}
- name: Inspect environment
run: |
pip list
- name: Run tests
run: |
python -m pytest --cov=lenskit --cov-report=xml --log-file=test.log
- name: Process Test Results
uses: lenskit/lkbuild/actions/save-test-results@main
with:
artifact-name: test-vanilla-${{matrix.platform}}-py${{matrix.python}}
mindep:
name: Minimal Supported Dependencies
runs-on: ubuntu-latest
steps:
- name: Check out source
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v1
with:
python-version: '3.10'
architecture: x64
- name: Set up Python deps
run: |
set -e
python -m pip install -U pip wheel
python -m pip install -c min-constraints.txt .[test]
python -m pip install pytest-cov
- name: Inspect environment
run: |
pip list
- name: Run tests
run: |
python -m pytest --cov=lenskit --cov-report=xml --log-file test.log
- name: Process Test Results
uses: lenskit/lkbuild/actions/save-test-results@main
with:
artifact-name: test-mindeps
results:
name: Test Suite Results
runs-on: ubuntu-latest
needs:
- conda
- vanilla
- check-docs
- mindep
steps:
- name: Check out source
uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: lenskit/lkbuild/actions/report-test-results@main