@@ -12,28 +12,31 @@ concurrency:
1212 cancel-in-progress : true
1313
1414env :
15+ UV_FROZEN : 1
1516 # Many color libraries just need this to be set to any value, but at least
1617 # one distinguishes color depth, where "3" -> "256-bit color".
1718 FORCE_COLOR : 3
1819
1920jobs :
2021 format :
21- name : Format
22+ name : lint
2223 runs-on : ubuntu-latest
2324 steps :
2425 - uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
2526
2627 - name : Install uv
2728 uses : astral-sh/setup-uv@f0ec1fc3b38f5e7cd731bb6ce540c5af426746bb
2829
29- - name : Install the project
30- run : uv sync --locked --group test
30+ - name : ruff
31+ run : |
32+ uv run ruff check --output-format=github
33+ uv run ruff format --check
3134
32- - name : Run lefthook hooks
33- run : uv run --frozen lefthook run pre-commit
35+ - name : mypy
36+ run : uv run mypy --tb --no-incremental --cache-dir=/dev/null src
3437
3538 checks :
36- name : Check Python ${{ matrix.python-version }} on ${{ matrix.runs-on }}
39+ name : test runtime
3740 runs-on : ${{ matrix.runs-on }}
3841 needs : [format]
3942 strategy :
@@ -50,21 +53,18 @@ jobs:
5053 with :
5154 python-version : ${{ matrix.python-version }}
5255
53- - name : Install the project
54- run : uv sync --locked --group test
55-
5656 - name : Test package
5757 run : >-
58- uv run --frozen pytest
59- --cov --cov-report=xml --cov-report=term --durations=20
58+ uv run --group=test_runtime
59+ pytest --cov --cov-report=xml --cov-report=term --durations=20
6060
6161 - name : Upload coverage report
6262 uses : codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24
6363 with :
6464 token : ${{ secrets.CODECOV_TOKEN }}
6565
6666 check_oldest :
67- name : Check Oldest Dependencies
67+ name : runtime tests (oldest deps)
6868 runs-on : ${{ matrix.runs-on }}
6969 needs : [format]
7070 strategy :
@@ -80,13 +80,11 @@ jobs:
8080 uses : astral-sh/setup-uv@f0ec1fc3b38f5e7cd731bb6ce540c5af426746bb
8181 with :
8282 python-version : ${{ matrix.python-version }}
83- - name : Install the project
84- run : uv sync --group test --resolution lowest-direct
8583
8684 - name : Test package
8785 run : >-
88- uv run --frozen pytest
89- --cov --cov-report=xml --cov-report=term --durations=20
86+ uv run --group=test_runtime --resolution=lowest-direct
87+ pytest --cov --cov-report=xml --cov-report=term --durations=20
9088
9189 - name : Upload coverage report
9290 uses : codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24
0 commit comments