66 - main
77 - 2.x
88 pull_request :
9+ types :
10+ - opened
11+ - synchronize
12+ - reopened
13+ - labeled
914 paths-ignore :
1015 - ' docs/**'
1116 - .pre-commit-config.yaml
3641 runs-on : ${{ matrix.os }}
3742 strategy :
3843 matrix :
39- os : [ubuntu-latest, ubuntu-24.04-arm, windows-latest, macos-13, macos-15]
44+ os : [ubuntu-latest, ubuntu-24.04-arm, windows-latest, windows-11-arm, macos-13, macos-15]
4045 python_version : ['3.13']
4146 include :
4247 - os : ubuntu-latest
5055 python-version : ${{ matrix.python_version }}
5156 allow-prereleases : true
5257
53- - uses : astral-sh/setup-uv@v5
58+ - uses : astral-sh/setup-uv@v6
5459
5560 # free some space to prevent reaching GHA disk space limits
5661 - name : Clean docker images
6873 run : |
6974 uv sync --no-dev --group test
7075
76+ - uses : joerick/pr-labels-action@v1.0.9
77+ - name : Set CIBW_ENABLE
78+ shell : bash
79+ run : |
80+ if [[ "${{ github.ref_name }}" == "main" ]]; then
81+ CIBW_ENABLE=all
82+ else
83+ # get the default CIBW_ENABLE value from the test module
84+ CIBW_ENABLE=$(uv run --no-sync python -c 'import sys, test.conftest as c; sys.stdout.write(c.DEFAULT_CIBW_ENABLE)')
85+
86+ # if this is a PR, check for labels
87+ if [[ -n "$GITHUB_PR_LABEL_CI_PYPY" ]]; then
88+ CIBW_ENABLE+=" pypy"
89+ fi
90+ if [[ -n "$GITHUB_PR_LABEL_CI_GRAALPY" ]]; then
91+ CIBW_ENABLE+=" graalpy"
92+ fi
93+ fi
94+ echo "CIBW_ENABLE=${CIBW_ENABLE}" >> $GITHUB_ENV
95+
7196 - name : Generate a sample project
7297 run : |
73- uv run -m test.test_projects test.test_0_basic.basic_project sample_proj
98+ uv run --no-sync - m test.test_projects test.test_0_basic.basic_project sample_proj
7499
75100 - name : Run a sample build (GitHub Action)
76101 uses : ./
80105 env :
81106 CIBW_ARCHS_MACOS : x86_64 universal2 arm64
82107 CIBW_BUILD_FRONTEND : ' build[uv]'
83- CIBW_ENABLE : " cpython-prerelease cpython-freethreading pypy"
84108
85109 - name : Run a sample build (GitHub Action, only)
86110 uses : ./
@@ -122,7 +146,7 @@ jobs:
122146
123147 - name : Test cibuildwheel
124148 run : |
125- uv run bin/run_tests.py ${{ (runner.os == 'Linux' && runner.arch == 'X64') && '--run-podman' || '' }}
149+ uv run --no-sync bin/run_tests.py ${{ (runner.os == 'Linux' && runner.arch == 'X64') && '--run-podman' || '' }}
126150
127151 emulated-archs :
128152 name : Get qemu emulated architectures
@@ -135,13 +159,13 @@ jobs:
135159 - uses : actions/setup-python@v5
136160 with :
137161 python-version : " 3.x"
138- - uses : astral-sh/setup-uv@v5
162+ - uses : astral-sh/setup-uv@v6
139163 - name : Install dependencies
140164 run : uv sync --no-dev --group test
141165 - name : Get qemu emulated architectures
142166 id : archs
143167 run : |
144- OUTPUT=$(uv run python -c "from json import dumps; from test.utils import EMULATED_ARCHS; print(dumps(EMULATED_ARCHS))")
168+ OUTPUT=$(uv run --no-sync python -c "from json import dumps; from test.utils import EMULATED_ARCHS; print(dumps(EMULATED_ARCHS))")
145169 echo "${OUTPUT}"
146170 echo "archs=${OUTPUT}" >> "$GITHUB_OUTPUT"
147171
@@ -158,15 +182,15 @@ jobs:
158182 - uses : actions/setup-python@v5
159183 with :
160184 python-version : " 3.x"
161- - uses : astral-sh/setup-uv@v5
185+ - uses : astral-sh/setup-uv@v6
162186 - name : Install dependencies
163187 run : uv sync --no-dev --group test
164188
165189 - name : Set up QEMU
166190 uses : docker/setup-qemu-action@v3
167191
168192 - name : Run the emulation tests
169- run : uv run pytest --run-emulation ${{ matrix.arch }} test/test_emulation.py
193+ run : uv run --no-sync pytest --run-emulation ${{ matrix.arch }} test/test_emulation.py
170194
171195 test-pyodide :
172196 name : Test cibuildwheel building Pyodide wheels
@@ -179,14 +203,14 @@ jobs:
179203 name : Install Python 3.12
180204 with :
181205 python-version : ' 3.12'
182- - uses : astral-sh/setup-uv@v5
206+ - uses : astral-sh/setup-uv@v6
183207
184208 - name : Install dependencies
185209 run : uv sync --no-dev --group test
186210
187211 - name : Generate a sample project
188212 run : |
189- uv run -m test.test_projects test.test_0_basic.basic_project sample_proj
213+ uv run --no-sync - m test.test_projects test.test_0_basic.basic_project sample_proj
190214
191215 - name : Run a sample build (GitHub Action)
192216 uses : ./
@@ -198,6 +222,6 @@ jobs:
198222
199223 - name : Run tests with 'CIBW_PLATFORM' set to 'pyodide'
200224 run : |
201- uv run ./bin/run_tests.py
225+ uv run --no-sync ./bin/run_tests.py
202226 env :
203227 CIBW_PLATFORM : pyodide
0 commit comments