Run dataset tests on Woodpecker with full data access #3042
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: Test suite | |
| on: | |
| push: | |
| branches: | |
| - main | |
| - future/* | |
| - series/* | |
| pull_request: | |
| concurrency: | |
| group: test-${{github.ref}} | |
| cancel-in-progress: true | |
| jobs: | |
| vanilla: | |
| name: Vanilla Python ${{matrix.python}} on ${{matrix.platform}} | |
| runs-on: ${{matrix.platform}} | |
| timeout-minutes: 30 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python: | |
| - "3.12.5" | |
| - "3.13" | |
| - "3.14" | |
| - "3.14t" | |
| platform: | |
| - ubuntu-latest | |
| - ubuntu-24.04-arm | |
| - macos-latest | |
| - windows-latest | |
| steps: | |
| - name: π Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - uses: jdx/mise-action@v4 | |
| with: | |
| cache: false | |
| install: true | |
| - name: πΆοΈ Install uv | |
| uses: astral-sh/setup-uv@v8.0.0 | |
| with: | |
| python-version: ${{ matrix.python }} | |
| activate-environment: true | |
| cache-suffix: "-20260407" | |
| - name: π¦ Set up Python dependencies (Unix) | |
| if: runner.os != 'Windows' | |
| run: | | |
| uv_extra= | |
| if [[ "${{matrix.python}}" = *t ]]; then | |
| uv_extra="--no-extra ray --no-extra tune" | |
| fi | |
| uv sync --all-extras $uv_extra --no-default-groups --group test | |
| env: | |
| # disable MARCH for hpfrec wheels | |
| DONT_SET_MARCH: 1 | |
| - name: π¦ Set up Python dependencies (Windows) | |
| if: runner.os == 'Windows' | |
| run: | | |
| uv sync --no-default-groups --group test | |
| env: | |
| # disable MARCH for hpfrec wheels | |
| DONT_SET_MARCH: 1 | |
| - name: π Inspect environment | |
| run: | | |
| coverage run -m lenskit doctor --full | |
| - name: ππ»ββ‘οΈ Test LKPY | |
| run: | | |
| python -m pytest --verbose --log-file=test.log --durations=25 --cov=src/lenskit --cov-append tests | |
| - name: πΊπ» Test LensKit CLI | |
| if: runner.os != 'Windows' | |
| run: | | |
| mise run test-cli -- --coverage --cov-append | |
| shell: bash -e {0} | |
| env: | |
| MERMAID_DOCKER: 1 | |
| - name: π€ Upload coverage to CodeCov | |
| uses: codecov/codecov-action@v7.0.0 | |
| rust-cover: | |
| name: Rust test coverage | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| steps: | |
| - name: π Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Set Mise environment | |
| run: | | |
| echo 'env = ["extra"]' >.miserc.toml | |
| - name: Install mise-en-place | |
| uses: jdx/mise-action@v4 | |
| with: | |
| cache: false | |
| - name: π¦ Set up Python dependencies | |
| run: | | |
| uv sync -p 3.14 | |
| - name: ππ»ββ‘οΈ Test LKPY | |
| run: | | |
| mise run test -- --coverage --accel-coverage -- --log-file=test.log | |
| - name: π€ Upload coverage to CodeCov | |
| uses: codecov/codecov-action@v7.0.0 | |
| mindep-all: | |
| name: Minimal dependency tests (all options) | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| steps: | |
| - name: π Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: πΆοΈ Install uv | |
| uses: astral-sh/setup-uv@v8.0.0 | |
| with: | |
| python-version: "3.12.5" | |
| activate-environment: true | |
| cache-suffix: "-20260407" | |
| - name: π¦ Set up Python dependencies | |
| run: | | |
| uv pip install --resolution=lowest-direct --group=test '.[sklearn,hpf,implicit,funksvd]' | |
| env: | |
| CC: gcc | |
| DONT_SET_MARCH: 1 | |
| - name: π Inspect environment | |
| run: | | |
| lenskit doctor --full | |
| - name: ππ»ββ‘οΈ Test LKPY | |
| run: | | |
| python -m pytest --verbose --log-file=test.log --durations=25 --cov=src/lenskit tests | |
| - name: π€ Upload coverage to CodeCov | |
| uses: codecov/codecov-action@v7.0.0 | |
| mindep: | |
| name: Minimal dependency tests | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| steps: | |
| - name: π Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - uses: jdx/mise-action@v4 | |
| with: | |
| install: false | |
| - name: πΆοΈ Install uv | |
| uses: astral-sh/setup-uv@v8.0.0 | |
| with: | |
| python-version: "3.12.5" | |
| activate-environment: true | |
| cache-suffix: "-20260407" | |
| - name: π¦ Set up Python dependencies | |
| run: | | |
| uv pip install --resolution=lowest-direct --group=test . | |
| - name: π Inspect environment | |
| run: | | |
| lenskit doctor --full | |
| - name: ππ»ββ‘οΈ Test LKPY | |
| run: | | |
| python -m pytest -vs tests/test_env.py | |
| python -m pytest --verbose --log-file=test.log --durations=25 --cov=src/lenskit tests | |
| - name: πΊπ» Test LensKit CLI | |
| run: | | |
| mise run test-cli -- --coverage --cov-append | |
| shell: bash -e {0} | |
| - name: π€ Upload coverage to CodeCov | |
| uses: codecov/codecov-action@v7.0.0 |