@@ -2,10 +2,17 @@ name: ci
22
33on :
44 push :
5+ branches :
6+ - main
7+ - test-me-*
58 pull_request :
69 branches :
710 - main
811
12+ concurrency :
13+ group : ${{ github.workflow }}-${{ github.ref }}
14+ cancel-in-progress : ${{ github.event_name == 'pull_request' }}
15+
916defaults :
1017 run :
1118 shell : bash
1421 LANG : en_US.utf-8
1522 LC_ALL : en_US.utf-8
1623 PYTHONIOENCODING : UTF-8
24+ PYTHONWARNDEFAULTENCODING : " 1"
1725 PYTHON_VERSIONS : " "
1826
1927jobs :
2028
2129 quality :
30+ strategy :
31+ matrix :
32+ os :
33+ - ubuntu-latest
34+ - macos-latest
35+ - windows-latest
36+ python-version :
37+ - " 3.10"
38+ - " 3.14"
39+ include :
40+ - os : ubuntu-latest
41+ python-version : " 3.11"
42+ - os : ubuntu-latest
43+ python-version : " 3.12"
44+ - os : ubuntu-latest
45+ python-version : " 3.13"
46+ - os : ubuntu-latest
47+ python-version : " 3.15-dev"
2248
23- runs-on : ubuntu-latest
49+ runs-on : ${{ matrix.os }}
50+ continue-on-error : true
2451
2552 steps :
2653 - name : Checkout
2754 uses : actions/checkout@v4
28-
29- - name : Fetch all tags
30- run : git fetch --depth=1 -- tags
55+ with :
56+ fetch-depth : 0
57+ fetch- tags : true
3158
3259 - name : Setup Python
33- uses : actions/setup-python@v5
60+ uses : actions/setup-python@v6
3461 with :
35- python-version : " 3.12 "
62+ python-version : ${{ matrix.python-version }}
3663
3764 - name : Setup uv
38- uses : astral-sh/setup-uv@v3
65+ uses : astral-sh/setup-uv@v5
3966 with :
4067 enable-cache : true
4168 cache-dependency-glob : pyproject.toml
@@ -55,74 +82,72 @@ jobs:
5582 - name : Check for breaking changes in the API
5683 run : make check-api
5784
58- exclude-test-jobs :
59- runs-on : ubuntu-latest
60- outputs :
61- jobs : ${{ steps.exclude-jobs.outputs.jobs }}
62- steps :
63- - id : exclude-jobs
64- run : |
65- if ${{ github.repository_owner == 'pawamoy-insiders' }}; then
66- echo 'jobs=[
67- {"os": "macos-latest"},
68- {"os": "windows-latest"},
69- {"python-version": "3.10"},
70- {"python-version": "3.11"},
71- {"python-version": "3.12"},
72- {"python-version": "3.13"},
73- {"python-version": "3.14"}
74- ]' | tr -d '[:space:]' >> $GITHUB_OUTPUT
75- else
76- echo 'jobs=[
77- {"os": "macos-latest", "resolution": "lowest-direct"},
78- {"os": "windows-latest", "resolution": "lowest-direct"}
79- ]' | tr -d '[:space:]' >> $GITHUB_OUTPUT
80- fi
85+ - name : Store objects inventory for tests
86+ uses : actions/upload-artifact@v4
87+ if : ${{ matrix.os == 'ubuntu-latest' && matrix.python-version == '3.13' }}
88+ with :
89+ name : objects.inv
90+ path : site/objects.inv
8191
8292 tests :
8393
84- needs : exclude-test-jobs
94+ needs :
95+ - quality
8596 strategy :
8697 matrix :
8798 os :
8899 - ubuntu-latest
89100 - macos-latest
90101 - windows-latest
91102 python-version :
92- - " 3.9"
93103 - " 3.10"
94104 - " 3.11"
95105 - " 3.12"
96106 - " 3.13"
97107 - " 3.14"
108+ - " 3.15-dev"
98109 resolution :
99110 - highest
100111 - lowest-direct
101- exclude : ${{ fromJSON(needs.exclude-test-jobs.outputs.jobs) }}
112+ exclude :
113+ - os : macos-latest
114+ resolution : lowest-direct
115+ - os : windows-latest
116+ resolution : lowest-direct
117+
102118 runs-on : ${{ matrix.os }}
103- continue-on-error : ${{ matrix.python-version == '3.14' }}
119+ continue-on-error : true
104120
105121 steps :
106122 - name : Checkout
107123 uses : actions/checkout@v4
124+ with :
125+ fetch-depth : 0
126+ fetch-tags : true
108127
109128 - name : Setup Python
110- uses : actions/setup-python@v5
129+ uses : actions/setup-python@v6
111130 with :
112131 python-version : ${{ matrix.python-version }}
113132 allow-prereleases : true
114133
115134 - name : Setup uv
116- uses : astral-sh/setup-uv@v3
135+ uses : astral-sh/setup-uv@v5
117136 with :
118137 enable-cache : true
119138 cache-dependency-glob : pyproject.toml
120- cache-suffix : py ${{ matrix.python-version }}
139+ cache-suffix : ${{ matrix.resolution }}
121140
122141 - name : Install dependencies
123142 env :
124143 UV_RESOLUTION : ${{ matrix.resolution }}
125144 run : make setup
126145
146+ - name : Download objects inventory
147+ uses : actions/download-artifact@v4
148+ with :
149+ name : objects.inv
150+ path : site/
151+
127152 - name : Run the test suite
128153 run : make test
0 commit comments