Bump GH CI to use `uv` throughout!

See docs: https://docs.astral.sh/uv/guides/integration/github/

Summary,
- drop `mypy` job for now since I'd like to move to trying `ty`.
- convert sdist built to `uv build`
- just run test suite on py3.13 for now, not sure if 3.12 will break due
  to the eg stuff or not?
main
Tyler Goodlet 2025-07-13 13:20:40 -04:00
parent 27e6ad18ee
commit c0eef3bac3
1 changed files with 79 additions and 42 deletions

View File

@ -8,46 +8,70 @@ on:
workflow_dispatch: workflow_dispatch:
jobs: jobs:
# ------ sdist ------
mypy:
name: 'MyPy'
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Setup python
uses: actions/setup-python@v2
with:
python-version: '3.11'
- name: Install dependencies
run: pip install -U . --upgrade-strategy eager -r requirements-test.txt
- name: Run MyPy check
run: mypy tractor/ --ignore-missing-imports --show-traceback
# test that we can generate a software distribution and install it # test that we can generate a software distribution and install it
# thus avoid missing file issues after packaging. # thus avoid missing file issues after packaging.
#
# -[x] produce sdist with uv
# ------ - ------
sdist-linux: sdist-linux:
name: 'sdist' name: 'sdist'
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v4
- name: Setup python - name: Install latest uv
uses: actions/setup-python@v2 uses: astral-sh/setup-uv@v6
with:
python-version: '3.11'
- name: Build sdist - name: Build sdist as tar.gz
run: python setup.py sdist --formats=zip run: uv build --sdist --python=3.13
- name: Install sdist from .zips - name: Install sdist from .tar.gz
run: python -m pip install dist/*.zip run: python -m pip install dist/*.tar.gz
# ------ type-check ------
# mypy:
# name: 'MyPy'
# runs-on: ubuntu-latest
# steps:
# - name: Checkout
# uses: actions/checkout@v4
# - name: Install latest uv
# uses: astral-sh/setup-uv@v6
# # faster due to server caching?
# # https://docs.astral.sh/uv/guides/integration/github/#setting-up-python
# - name: "Set up Python"
# uses: actions/setup-python@v6
# with:
# python-version-file: "pyproject.toml"
# # w uv
# # - name: Set up Python
# # run: uv python install
# - name: Setup uv venv
# run: uv venv .venv --python=3.13
# - name: Install
# run: uv sync --dev
# # TODO, ty cmd over repo
# # - name: type check with ty
# # run: ty ./tractor/
# # - uses: actions/cache@v3
# # name: Cache uv virtenv as default .venv
# # with:
# # path: ./.venv
# # key: venv-${{ hashFiles('uv.lock') }}
# - name: Run MyPy check
# run: mypy tractor/ --ignore-missing-imports --show-traceback
testing-linux: testing-linux:
@ -59,32 +83,45 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
os: [ubuntu-latest] os: [ubuntu-latest]
python: ['3.11'] python-version: ['3.13']
spawn_backend: [ spawn_backend: [
'trio', 'trio',
'mp_spawn', # 'mp_spawn',
'mp_forkserver', # 'mp_forkserver',
] ]
steps: steps:
- name: Checkout - uses: actions/checkout@v4
uses: actions/checkout@v2
- name: Setup python - name: 'Install uv + py-${{ matrix.python-version }}'
uses: actions/setup-python@v2 uses: astral-sh/setup-uv@v6
with: with:
python-version: '${{ matrix.python }}' python-version: ${{ matrix.python-version }}
- name: Install dependencies # GH way.. faster?
run: pip install -U . -r requirements-test.txt -r requirements-docs.txt --upgrade-strategy eager # - name: setup-python@v6
# uses: actions/setup-python@v6
# with:
# python-version: '${{ matrix.python-version }}'
- name: List dependencies # consider caching for speedups?
run: pip list # https://docs.astral.sh/uv/guides/integration/github/#caching
- name: Install the project w uv
run: uv sync --locked --all-extras --dev
# - name: Install dependencies
# run: pip install -U . -r requirements-test.txt -r requirements-docs.txt --upgrade-strategy eager
- name: List deps tree
run: uv tree
- name: Run tests - name: Run tests
run: pytest tests/ --spawn-backend=${{ matrix.spawn_backend }} -rsx run: uv run pytest tests/ --spawn-backend=${{ matrix.spawn_backend }} -rsx
# XXX legacy NOTE XXX
#
# We skip 3.10 on windows for now due to not having any collabs to # We skip 3.10 on windows for now due to not having any collabs to
# debug the CI failures. Anyone wanting to hack and solve them is very # debug the CI failures. Anyone wanting to hack and solve them is very
# welcome, but our primary user base is not using that OS. # welcome, but our primary user base is not using that OS.