@@ -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"
2246
23- runs-on : ubuntu-latest
47+ runs-on : ${{ matrix.os }}
2448
2549 steps :
2650 - name : Checkout
3054 fetch-tags : true
3155
3256 - name : Setup Python
33- uses : actions/setup-python@v5
57+ uses : actions/setup-python@v6
3458 with :
35- python-version : " 3.12 "
59+ python-version : ${{ matrix.python-version }}
3660
3761 - name : Setup uv
3862 uses : astral-sh/setup-uv@v5
@@ -57,58 +81,38 @@ jobs:
5781
5882 - name : Store objects inventory for tests
5983 uses : actions/upload-artifact@v4
84+ if : ${{ matrix.os == 'ubuntu-latest' && matrix.python-version == '3.13' }}
6085 with :
6186 name : objects.inv
6287 path : site/objects.inv
6388
64- exclude-test-jobs :
65- runs-on : ubuntu-latest
66- outputs :
67- jobs : ${{ steps.exclude-jobs.outputs.jobs }}
68- steps :
69- - id : exclude-jobs
70- run : |
71- if ${{ github.repository_owner == 'pawamoy-insiders' }}; then
72- echo 'jobs=[
73- {"os": "macos-latest"},
74- {"os": "windows-latest"},
75- {"python-version": "3.10"},
76- {"python-version": "3.11"},
77- {"python-version": "3.12"},
78- {"python-version": "3.13"},
79- {"python-version": "3.14"}
80- ]' | tr -d '[:space:]' >> $GITHUB_OUTPUT
81- else
82- echo 'jobs=[
83- {"os": "macos-latest", "resolution": "lowest-direct"},
84- {"os": "windows-latest", "resolution": "lowest-direct"}
85- ]' | tr -d '[:space:]' >> $GITHUB_OUTPUT
86- fi
87-
8889 tests :
8990
9091 needs :
9192 - quality
92- - exclude-test-jobs
9393 strategy :
9494 matrix :
9595 os :
9696 - ubuntu-latest
9797 - macos-latest
9898 - windows-latest
9999 python-version :
100- - " 3.9"
101100 - " 3.10"
102101 - " 3.11"
103102 - " 3.12"
104103 - " 3.13"
105104 - " 3.14"
105+ - " 3.15"
106106 resolution :
107107 - highest
108108 - lowest-direct
109- exclude : ${{ fromJSON(needs.exclude-test-jobs.outputs.jobs) }}
109+ exclude :
110+ - os : macos-latest
111+ resolution : lowest-direct
112+ - os : windows-latest
113+ resolution : lowest-direct
110114 runs-on : ${{ matrix.os }}
111- continue-on-error : ${{ matrix.python-version == '3.14' }}
115+ continue-on-error : true
112116
113117 steps :
114118 - name : Checkout
@@ -118,7 +122,7 @@ jobs:
118122 fetch-tags : true
119123
120124 - name : Setup Python
121- uses : actions/setup-python@v5
125+ uses : actions/setup-python@v6
122126 with :
123127 python-version : ${{ matrix.python-version }}
124128 allow-prereleases : true
0 commit comments