@@ -25,17 +25,34 @@ jobs:
2525 test :
2626 strategy :
2727 matrix :
28- python-version : ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
28+ os : [ ubuntu-latest, macos-latest, windows-latest ]
29+ python-version : ["3.14"]
30+ uv-resolution :
31+ - highest
32+ include :
33+ - python-version : " 3.10"
34+ os : ubuntu-latest
35+ uv-resolution : lowest-direct
36+ - python-version : " 3.11"
37+ os : macos-latest
38+ uv-resolution : lowest-direct
39+ - python-version : " 3.12"
40+ os : windows-latest
41+ uv-resolution : highest
42+ - python-version : " 3.13"
43+ os : macos-latest
44+ uv-resolution : lowest-direct
2945 fail-fast : false
30- runs-on : ubuntu-latest
46+ runs-on : ${{ matrix.os }}
3147 env :
3248 UV_PYTHON : ${{ matrix.python-version }}
49+ UV_RESOLUTION : ${{ matrix.uv-resolution }}
3350 steps :
3451 - name : Dump GitHub context
3552 env :
3653 GITHUB_CONTEXT : ${{ toJson(github) }}
3754 run : echo "$GITHUB_CONTEXT"
38- - uses : actions/checkout@v5
55+ - uses : actions/checkout@v6
3956 - name : Set up Python
4057 uses : actions/setup-python@v6
4158 with :
@@ -52,17 +69,17 @@ jobs:
5269 with :
5370 limit-access-to-actor : true
5471 - name : Install Dependencies
55- run : uv sync --locked -- all-extras --dev
72+ run : uv sync --all-extras --dev
5673 - run : mkdir coverage
5774 - name : Test
58- run : uv run --no-sync scripts/test.sh
75+ run : uv run --no-sync bash scripts/test.sh
5976 env :
6077 COVERAGE_FILE : coverage/.coverage.${{ runner.os }}-py${{ matrix.python-version }}
6178 CONTEXT : ${{ runner.os }}-py${{ matrix.python-version }}
6279 - name : Store coverage files
63- uses : actions/upload-artifact@v4
80+ uses : actions/upload-artifact@v7
6481 with :
65- name : coverage-${{ matrix.python-version }}
82+ name : coverage-${{ runner.os }}-${{ matrix.python-version }}
6683 path : coverage
6784 include-hidden-files : true
6885
7491 env :
7592 GITHUB_CONTEXT : ${{ toJson(github) }}
7693 run : echo "$GITHUB_CONTEXT"
77- - uses : actions/checkout@v5
94+ - uses : actions/checkout@v6
7895 - uses : actions/setup-python@v6
7996 with :
8097 python-version-file : " pyproject.toml"
84101 - name : Install uv
85102 uses : astral-sh/setup-uv@v7
86103 - name : Get coverage files
87- uses : actions/download-artifact@v5
104+ uses : actions/download-artifact@v8
88105 with :
89106 pattern : coverage-*
90107 path : coverage
94111 - run : uv run coverage combine coverage
95112 - run : uv run coverage html --title "Coverage for ${{ github.sha }}"
96113 - name : Store coverage HTML
97- uses : actions/upload-artifact@v4
114+ uses : actions/upload-artifact@v7
98115 with :
99116 name : coverage-html
100117 path : htmlcov
0 commit comments