1
- name : check
1
+ name : " 🛠️ check"
2
2
on :
3
3
workflow_dispatch :
4
4
push :
@@ -14,65 +14,59 @@ concurrency:
14
14
15
15
jobs :
16
16
test :
17
- name : test ${{ matrix.py }} - ${{ matrix.os }}
17
+ name : " 🧪 Test ${{ matrix.py }} - ${{ matrix.os }}"
18
18
runs-on : ${{ matrix.os }}
19
19
strategy :
20
20
fail-fast : false
21
21
matrix :
22
22
py :
23
- - " pypy3.10 " # ahead to start it earlier because takes longer
23
+ - " 3.14 "
24
24
- " 3.13"
25
25
- " 3.12"
26
26
- " 3.11"
27
27
- " 3.10"
28
28
- " 3.9"
29
+ - " pypy3.11"
29
30
os :
30
- - ubuntu-latest
31
- - windows-latest
32
- - macos-latest
31
+ - ubuntu-24.04
32
+ - windows-2025
33
+ - macos-15
34
+ exclude :
35
+ - { os: windows-2025, py: pypy3.11 }
33
36
34
37
steps :
35
38
- uses : actions/checkout@v5
36
39
with :
37
40
fetch-depth : 0
38
- - name : Install the latest version of uv
41
+ - name : " 🔄 Install the latest version of uv"
39
42
uses : astral-sh/setup-uv@v6
40
- with :
41
- enable-cache : true
42
- cache-dependency-glob : " pyproject.toml"
43
- github-token : ${{ secrets.GITHUB_TOKEN }}
44
- - name : Add .local/bin to Windows PATH
45
- if : runner.os == 'Windows'
46
- shell : bash
47
- run : echo "$USERPROFILE/.local/bin" >> $GITHUB_PATH
48
- - name : Install tox
43
+ - name : " 🧪 Install tox"
49
44
run : uv tool install --python-preference only-managed --python 3.13 tox --with tox-uv
50
- - name : Install Python
45
+ - name : " 🐍 Install Python"
51
46
run : uv python install --python-preference only-managed ${{ matrix.py }}
52
- - name : Setup test suite
47
+ - name : " ⚙️ Setup test suite"
53
48
run : tox run -vv --notest --skip-missing-interpreters false -e ${{ matrix.py }}
54
49
env :
55
50
UV_PYTHON_PREFERENCE : only-managed
56
- - name : Run test suite
57
- if : ${{ !startsWith(matrix.py, 'pypy')}}
58
- run : tox run --skip-pkg-install -e ${{ matrix.py }}
59
- env :
60
- PYTEST_ADDOPTS : " -vv --durations=20"
61
- DIFF_AGAINST : HEAD
62
- UV_PYTHON_PREFERENCE : only-managed
63
- - name : Run test suite without coverage
64
- if : ${{ startsWith(matrix.py, 'pypy')}}
65
- run : tox run --skip-pkg-install -e ${{ matrix.py }} --
51
+ - name : " ✅ Run test suite"
52
+ run : |
53
+ if [[ "${{ matrix.py }}" == pypy* ]]; then
54
+ tox run --skip-pkg-install -e ${{ matrix.py }} --
55
+ else
56
+ tox run --skip-pkg-install -e ${{ matrix.py }}
57
+ fi
58
+ shell : bash
66
59
env :
67
60
PYTEST_ADDOPTS : " -vv --durations=20"
68
61
UV_PYTHON_PREFERENCE : only-managed
69
- - name : Rename coverage report file
62
+ DIFF_AGAINST : HEAD
63
+ - name : " 📝 Rename coverage report file"
70
64
if : ${{ !startsWith(matrix.py, 'pypy')}}
71
65
run : |
72
66
import os; import sys
73
67
os.rename(f".tox/.coverage.${{ matrix.py }}", f".tox/.coverage.${{ matrix.py }}-{sys.platform}")
74
68
shell : python
75
- - name : Upload coverage data
69
+ - name : " 📦 Upload coverage data"
76
70
if : ${{ !startsWith(matrix.py, 'pypy')}}
77
71
uses : actions/upload-artifact@v4
78
72
with :
@@ -82,84 +76,68 @@ jobs:
82
76
retention-days : 3
83
77
84
78
coverage :
85
- name : Combine coverage
86
- runs-on : ubuntu-latest
79
+ name : " 📊 Combine coverage"
80
+ runs-on : ubuntu-24.04
87
81
needs : test
88
82
steps :
89
83
- uses : actions/checkout@v5
90
84
with :
91
85
fetch-depth : 0
92
- - name : Install the latest version of uv
86
+ - name : " 🔄 Install the latest version of uv"
93
87
uses : astral-sh/setup-uv@v6
94
- with :
95
- enable-cache : true
96
- cache-dependency-glob : " pyproject.toml"
97
- github-token : ${{ secrets.GITHUB_TOKEN }}
98
- - name : Add .local/bin to Windows PATH
99
- if : runner.os == 'Windows'
100
- shell : bash
101
- run : echo "$USERPROFILE/.local/bin" >> $GITHUB_PATH
102
- - name : Install hatch
88
+ - name : " 🧪 Install tox"
103
89
run : uv tool install --python-preference only-managed --python 3.13 tox --with tox-uv
104
- - name : Build package to generate version
90
+ - name : " 📦 Build package to generate version"
105
91
run : uv build --python 3.13 --python-preference only-managed --wheel . --out-dir dist
106
- - name : Setup coverage tool
92
+ - name : " ⚙️ Setup coverage tool"
107
93
run : tox -e coverage --notest
108
94
env :
109
95
UV_PYTHON_PREFERENCE : only-managed
110
- - name : Download coverage data
96
+ - name : " ⬇️ Download coverage data"
111
97
uses : actions/download-artifact@v5
112
98
with :
113
99
path : .tox
114
100
pattern : .coverage.*
115
101
merge-multiple : true
116
- - name : Combine and report coverage
102
+ - name : " 📊 Combine and report coverage"
117
103
run : tox -e coverage --skip-pkg-install
118
104
env :
119
105
UV_PYTHON_PREFERENCE : only-managed
120
- - name : Upload HTML report
106
+ - name : " 📤 Upload HTML report"
121
107
uses : actions/upload-artifact@v4
122
108
with :
123
109
name : html-report
124
110
path : .tox/htmlcov
125
111
126
112
check :
127
- name : ${{ matrix.tox_env }} - ${{ matrix.os }}
113
+ name : " 🔎 ${{ matrix.tox_env }} - ${{ matrix.os }}"
128
114
runs-on : ${{ matrix.os }}
129
115
strategy :
130
116
fail-fast : false
131
117
matrix :
132
118
os :
133
- - ubuntu-latest
134
- - windows-latest
119
+ - ubuntu-24.04
120
+ - windows-2025
135
121
tox_env :
136
122
- dev
137
123
- type
138
124
- docs
139
- - readme
125
+ - pkg_meta
140
126
exclude :
141
- - { os: windows-latest , tox_env: readme }
127
+ - { os: windows-2025 , tox_env: pkg_meta }
142
128
steps :
143
129
- uses : actions/checkout@v5
144
130
with :
145
131
fetch-depth : 0
146
- - name : Install the latest version of uv
132
+ - name : " 🔄 Install the latest version of uv"
147
133
uses : astral-sh/setup-uv@v6
148
- with :
149
- enable-cache : true
150
- cache-dependency-glob : " pyproject.toml"
151
- github-token : ${{ secrets.GITHUB_TOKEN }}
152
- - name : Add .local/bin to Windows PATH
153
- if : runner.os == 'Windows'
154
- shell : bash
155
- run : echo "$USERPROFILE/.local/bin" >> $GITHUB_PATH
156
- - name : Install tox
134
+ - name : " 🧪 Install tox"
157
135
run : uv tool install --python-preference only-managed --python 3.13 tox --with tox-uv
158
- - name : Setup test suite
136
+ - name : " ⚙️ Setup test suite"
159
137
run : tox run -vv --notest --skip-missing-interpreters false -e ${{ matrix.tox_env }}
160
138
env :
161
139
UV_PYTHON_PREFERENCE : only-managed
162
- - name : Run test suite
140
+ - name : " ✅ Run test suite"
163
141
run : tox run --skip-pkg-install -e ${{ matrix.tox_env }}
164
142
env :
165
143
UV_PYTHON_PREFERENCE : only-managed
0 commit comments