44 pull_request :
55 schedule :
66 - cron : ' 0 6 * * 6'
7+ defaults :
8+ run :
9+ shell : bash
710jobs :
811 test :
912 strategy :
1013 fail-fast : false
1114 matrix :
12- python-version : ['3.8', '3.9', '3.10', '3.11', '3.12', 'pypy-3.9-v7.x']
13- os : [ubuntu-latest, windows-latest, macos-latest]
1415 include :
15- - python-version : pypy-3.9-v7.x
16- py : pypy3
17- # Just to slim down the test matrix:
18- exclude :
19- - python-version : ' 3.9 '
16+ - python : ' ^3.14 '
17+ os : ubuntu-latest
18+ - python : ' 3.14 '
19+ os : windows-latest
20+ - python : ' 3.14 '
2021 os : macos-latest
21- - python-version : ' 3.9'
22+ - python : ' 3.13'
23+ os : ubuntu-latest
24+ - python : ' 3.13'
2225 os : windows-latest
23- - python-version : ' 3.10'
26+ - python : ' 3.12'
27+ os : macos-latest
28+ - python : ' 3.12'
2429 os : ubuntu-latest
25- - python-version : ' 3.11'
30+ - python : ' 3.12'
31+ os : windows-latest
32+ - python : ' 3.11'
33+ os : ubuntu-latest
34+ - python : ' 3.11'
2635 os : macos-latest
27- - python-version : ' 3.11 '
36+ - python : ' 3.10 '
2837 os : windows-latest
29- runs-on : ${{ matrix.os }}
38+ - python : ' 3.10'
39+ os : ubuntu-latest
40+ versions : minimal
41+ runs-on : ${{matrix.os}}
3042 steps :
31- - uses : actions/checkout@v4
32- - name : Setup Python ${{ matrix.python-version }}
33- uses : actions/setup-python@v5
43+ - name : Download source
44+ uses : actions/checkout@v6
45+ - name : Install Python
46+ uses : actions/setup-python@v6
3447 with :
35- python-version : ${{ matrix.python-version }}
48+ python-version : ${{matrix.python}}
49+ - name : Pin to lowest versions
50+ if : matrix.versions == 'minimal'
51+ run : |
52+ sed -i -E 's/#min //; s/\b >=([0-9])/ ==\1/' pyproject.toml
53+ - name : Install Hatch
54+ run : |
55+ pip install hatch
3656 - name : Install dependencies
3757 run : |
38- python -m pip install --upgrade hatch
58+ hatch run test: pip freeze
3959 - name : Run tests
4060 run : |
41- hatch run +py=${{ matrix.py || matrix.python-version }} test:with-coverage
61+ hatch run +py=${{ matrix.py || matrix.python-version }} test:test
4262 - name : Run integration tests
4363 run : |
4464 hatch run +py=${{ matrix.py || matrix.python-version }} integration:test
45- shell : bash
46- - name : Upload Codecov Results
47- if : success()
48- uses : codecov/codecov-action@v3
49- with :
50- file : ./coverage.xml
51- flags : unittests
52- name : ${{ matrix.os }}/${{ matrix.python-version }}
53- fail_ci_if_error : false
54-
55- lint :
65+ style :
5666 runs-on : ubuntu-latest
5767 steps :
58- - uses : actions/checkout@v4
59- - name : Setup Python
60- uses : actions/setup-python@v5
68+ - name : Download source
69+ uses : actions/checkout@v6
70+ - name : Install Python
71+ uses : actions/setup-python@v6
6172 with :
62- python-version : ' 3.11 '
63- - name : Install Python dependencies
73+ python-version : ' 3.13 '
74+ - name : Install Hatch
6475 run : |
65- python -m pip install --upgrade hatch
66- - name : Setup Node
67- uses : actions/setup-node@v4
76+ pip install hatch
77+ - name : Install Node
78+ uses : actions/setup-node@v6
6879 with :
69- node-version : 20
80+ node-version : 24
81+ - name : Install dependencies
82+ run : |
83+ hatch run style:pip freeze
84+ hatch run types:pip freeze
7085 - name : Check with ruff
7186 if : always()
72- run : hatch run style:lint
87+ run : hatch run style:check
7388 - name : Check with mypy
7489 if : always()
7590 run : hatch run types:check
@@ -86,11 +101,11 @@ jobs:
86101 package :
87102 runs-on : ubuntu-latest
88103 steps :
89- - uses : actions/checkout@v4
104+ - uses : actions/checkout@v6
90105 - name : Setup Python
91- uses : actions/setup-python@v5
106+ uses : actions/setup-python@v6
92107 with :
93- python-version : ' 3.11 '
108+ python-version : ' 3.13 '
94109 - name : Install dependencies
95110 run : pip install -U build
96111 - name : Build package
0 commit comments