11name : CI
2-
3- permissions :
4- contents : read
5- packages : read
2+ permissions : read-all
63
74on :
85 workflow_dispatch :
96 pull_request :
107 push :
11- branches :
12- - main
8+ branches : [main]
139
1410concurrency :
1511 group : ${{ github.workflow }}-${{ github.ref }}
@@ -29,20 +25,12 @@ jobs:
2925
3026 - name : Install uv
3127 uses : astral-sh/setup-uv@v6
32- with :
33- enable-cache : true
34- cache-dependency-glob : " uv.lock"
35-
36- - name : " Set up Python"
37- uses : actions/setup-python@v5
38- with :
39- python-version-file : " .python-version"
4028
4129 - name : Install the project
42- run : uv sync --group test
30+ run : uv sync --locked -- group test
4331
4432 - name : Run lefthook hooks
45- run : uv run lefthook run
33+ run : uv run --frozen lefthook run pre-commit
4634
4735 checks :
4836 name : Check Python ${{ matrix.python-version }} on ${{ matrix.runs-on }}
@@ -54,30 +42,22 @@ jobs:
5442 python-version : ["3.11", "3.12", "3.13"]
5543 runs-on : [ubuntu-latest, macos-latest, windows-latest]
5644
57- # TODO: check when pypy3.11 is available
58- # include:
59- # - python-version: pypy-3.11
60- # runs-on: ubuntu-latest
61-
6245 steps :
6346 - uses : actions/checkout@v4
6447
6548 - name : Install uv
6649 uses : astral-sh/setup-uv@v6
6750 with :
68- enable-cache : true
69- cache-dependency-glob : " uv.lock"
70-
71- - name : Set up Python ${{ matrix.python-version }}
72- run : uv python install ${{ matrix.python-version }}
51+ python-version : ${{ matrix.python-version }}
7352
7453 - name : Install the project
75- run : uv sync --group test
54+ run : uv sync --locked -- group test
7655
7756 - name : Test package
7857 run : >-
79- uv run pytest src docs tests -ra --cov --cov-report=xml
80- --cov-report=term --durations=20
58+ uv run --frozen pytest
59+ -cov --cov-report=xml --cov-report=term --durations=20
60+ src docs tests
8161
8262 - name : Upload coverage report
8363@@ -100,19 +80,15 @@ jobs:
10080 - name : Install uv
10181 uses : astral-sh/setup-uv@v6
10282 with :
103- enable-cache : true
104- cache-dependency-glob : " uv.lock"
105-
106- - name : Set up Python ${{ matrix.python-version }}
107- run : uv python install ${{ matrix.python-version }}
108-
83+ python-version : ${{ matrix.python-version }}
10984 - name : Install the project
110- run : uv sync --extra all --group test-all --resolution lowest-direct
85+ run : uv sync --locked --group test --resolution lowest-direct
11186
11287 - name : Test package
11388 run : >-
114- uv run pytest src docs tests -ra --cov --cov-report=xml
115- --cov-report=term --durations=20 --mpl
89+ uv run --frozen pytest
90+ --cov --cov-report=xml --cov-report=term --durations=20
91+ src docs tests
11692
11793 - name : Upload coverage report
11894
0 commit comments