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
parent
27e6ad18ee
commit
c0eef3bac3
|
@ -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.
|
||||||
|
|
Loading…
Reference in New Issue