Skip to content

Add Python 3.13 and switch to uv package management #140

Add Python 3.13 and switch to uv package management

Add Python 3.13 and switch to uv package management #140

Workflow file for this run

name: Run Tests
on:
push:
branches:
- main
release:
types: [published]
pull_request:
concurrency:
group: test-${{github.ref}}
cancel-in-progress: true
jobs:
test:
name: Test with Python ${{matrix.python}} on ${{matrix.platform}}
runs-on: ${{matrix.platform}}-latest
strategy:
fail-fast: false
matrix:
platform:
- macos
- windows
- ubuntu
python:
- "3.10"
- "3.11"
- "3.12"
- "3.13"
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: ${{matrix.python}}
- name: Install uv
uses: astral-sh/setup-uv@v3
- name: Set up dev environment
run: |
uv sync --only-group test
uv pip install .
- name: Run tests
run: |
uv run --no-sync pytest --cov=seedbank --cov-report=xml tests
- name: Upload logs
uses: actions/upload-artifact@v3
with:
name: test-${{matrix.platform}}-py${{matrix.python}}
path: |
test*.log
coverage.xml
test-extra:
name: Test single extra ${{matrix.extra}}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
extra:
- numba
- torch
- tf
- jax
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: 3.11
- name: Install uv
uses: astral-sh/setup-uv@v3
- name: Set up dev environment
run: |
uv sync --only-group test
uv pip install ".[${{matrix.extra}}]"
- name: Run tests
run: |
uv run --no-sync pytest --cov=seedbank --cov-report=xml tests
- name: Upload logs
uses: actions/upload-artifact@v3
with:
name: test-extra-${{matrix.extra}}
path: |
test*.log
coverage.xml
report:
name: Process test results
runs-on: ubuntu-latest
needs: [test, test-extra]
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Report test results
uses: lenskit/lkbuild/actions/report-test-results@main
sdist:
name: Build and Publish Packages
runs-on: ubuntu-latest
needs: [test, test-extra]
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Fetch Git tags
run: git fetch --tags
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.13"
- name: Install Python deps
run: pip install -U build twine
- name: Build distribution
run: python -m build
- name: Save archive
uses: actions/upload-artifact@v3
with:
name: pypi-pkgs
path: dist
- name: List dist dir
run: ls -R dist
- name: Publish PyPI packages
if: github.event_name == 'release'
run: |
twine upload dist/*
shell: bash
env:
TWINE_NON_INTERACTIVE: y
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }}