3232 path : py-radiate/target-sdist/*.tar.gz
3333
3434 wheels :
35+ continue-on-error : true # ← key line
3536 name : ${{ matrix.os }} • ${{ matrix.arch }} • ${{ matrix.mode }}
3637 runs-on : ${{ matrix.os }}
3738 strategy :
@@ -128,7 +129,7 @@ jobs:
128129 publish :
129130 needs : [ sdist, wheels ]
130131 runs-on : ubuntu-latest
131- if : ${{ needs.sdist.result == 'success' && needs.wheels.result == 'success' }} # && startsWith(github.ref, 'refs/tags/v') }}
132+ if : ${{ needs.sdist.result == 'success' }} # && startsWith(github.ref, 'refs/tags/v') }}
132133 environment :
133134 name : publish_pypi
134135 steps :
@@ -142,220 +143,3 @@ jobs:
142143 with :
143144 verbose : true
144145 skip-existing : true
145-
146- # name: Publish Python Wheels and Sdist
147-
148- # on:
149- # push:
150- # tags: [ 'v*' ] # publish on version tags, e.g. v0.1.0
151- # workflow_dispatch: {}
152-
153- # permissions:
154- # contents: read
155- # id-token: write # PyPI Trusted Publisher
156-
157- # env:
158- # CARGO_INCREMENTAL: 0
159- # CARGO_NET_RETRY: 10
160- # RUSTUP_MAX_RETRIES: 10
161-
162- # jobs:
163- # sdist:
164- # runs-on: ubuntu-latest
165- # steps:
166- # - uses: actions/checkout@v4
167-
168- # - uses: actions/setup-python@v5
169- # with: { python-version: '3.12' }
170-
171- # - name: Install uv
172- # run: python -m pip install -U pip uv
173-
174- # - name: Build sdist
175- # run: |
176- # cd py-radiate
177- # uvx maturin sdist -o target-sdist
178-
179- # - uses: actions/upload-artifact@v4
180- # with:
181- # name: sdist
182- # path: py-radiate/target-sdist/*.tar.gz
183-
184- # wheels:
185- # name: ${{ matrix.os }} • ${{ matrix.arch }} • ${{ matrix.mode }}
186- # runs-on: ${{ matrix.os }}
187- # strategy:
188- # fail-fast: false
189- # matrix:
190- # include:
191- # # ---------- Linux ----------
192- # - { os: ubuntu-latest, arch: x86_64, mode: gil, py: '3.12', manylinux: auto }
193- # - { os: ubuntu-latest, arch: aarch64, mode: gil, py: '3.12', manylinux: '2_24', target: aarch64-unknown-linux-gnu }
194-
195- # # - { os: ubuntu-la test, arch: x86_64, mode: nogil, py: '3.13t', manylinux: auto }
196- # # - { os: ubuntu-latest, arch: aarch64, mode: nogil, py: '3.13t', manylinux: '2_24', target: aarch64-unknown-linux-gnu }
197-
198- # # ---------- macOS ----------
199- # - { os: macos-13, arch: x86_64, mode: gil, py: '3.12' }
200- # - { os: macos-15, arch: arm64, mode: gil, py: '3.12' }
201- # - { os: macos-13, arch: x86_64, mode: nogil, py: '3.13t' }
202- # - { os: macos-15, arch: arm64, mode: nogil, py: '3.13t' }
203-
204- # # ---------- Windows (x64) ----------
205- # # - { os: windows-latest, arch: x64, mode: gil, py: '3.12' }
206- # # - { os: windows-latest, arch: x64, mode: nogil, py: '3.13t' }
207-
208- # # (Optional) Windows ARM64 – enable when you want it:
209- # # - { os: windows-11-arm, arch: arm64, mode: gil, py: '3.12' }
210- # # - { os: windows-11-arm, arch: arm64, mode: nogil, py: '3.13t' }
211-
212- # steps:
213- # - uses: actions/checkout@v4
214-
215- # - uses: dtolnay/rust-toolchain@stable
216-
217- # # Host python for tooling; uv will install/find the matrix interpreter itself
218- # - uses: actions/setup-python@v5
219- # with: { python-version: '3.12' }
220-
221- # - name: Install uv
222- # run: python -m pip install -U pip uv
223-
224- # - name: Ensure requested interpreter (best effort)
225- # shell: bash
226- # run: |
227- # set -e
228- # uv python install "${{ matrix.py }}" || true
229- # uv python list --only-installed
230-
231- # - name: Select interpreter, flags, and target dir
232- # id: envsel
233- # shell: bash
234- # run: |
235- # set -euo pipefail
236-
237- # echo "::group::uv versions"
238- # uv --version || true
239- # uv python --version || true
240- # echo "::endgroup::"
241-
242- # # 1) Try to ensure the exact interpreter exists (best-effort).
243- # # For 3.13t on some runners, this may fail; that's OK—we fallback.
244- # echo "::group::Ensuring interpreter ${{ matrix.py }}"
245- # if ! uv python install "${{ matrix.py }}"; then
246- # echo "WARN: uv could not install ${{ matrix.py }} on ${{ runner.os }} (${{ matrix.arch }}). Will try fallbacks." >&2
247- # fi
248- # echo "::endgroup::"
249-
250- # echo "::group::Installed Pythons"
251- # uv python list --only-installed || true
252- # echo "::endgroup::"
253-
254- # pick_latest_by_mode() {
255- # local want="$1" # "gil" or "nogil"
256- # local id
257- # if [[ "$want" == "nogil" ]]; then
258- # # pick the newest +freethreaded id
259- # id="$(uv python list --only-installed | awk 'tolower($1) ~ /\+freethreaded/ {print $1}' | sort -rV | head -n1)"
260- # else
261- # # pick the newest *non*-freethreaded id
262- # id="$(uv python list --only-installed | awk 'tolower($1) !~ /\+freethreaded/ {print $1}' | sort -rV | head -n1)"
263- # fi
264- # [[ -n "${id:-}" ]] && uv python find "$id" || true
265- # }
266-
267- # # 2) First, try to find the exact spec from the matrix.
268- # PY="$(uv python find "${{ matrix.py }}" 2>/dev/null || true)"
269-
270- # # 3) If that failed, fall back to "latest by mode".
271- # if [[ -z "${PY}" ]]; then
272- # if [[ "${{ matrix.mode }}" == "nogil" ]]; then
273- # PY="$(pick_latest_by_mode nogil)"
274- # else
275- # PY="$(pick_latest_by_mode gil)"
276- # fi
277- # fi
278-
279- # # 4) If still empty, skip this matrix axis cleanly.
280- # if [[ -z "${PY}" ]]; then
281- # echo "Requested interpreter '${{ matrix.py }}' not available; no suitable fallback found on ${{ runner.os }} (${{ matrix.arch }})." >&2
282- # echo "skip=1" >> "$GITHUB_OUTPUT"
283- # exit 0
284- # fi
285-
286- # # Flags & target dir by mode
287- # if [[ "${{ matrix.mode }}" == "nogil" ]]; then
288- # FLAGS="--no-default-features --features nogil"
289- # TARGET_DIR="target-nogil"
290- # else
291- # FLAGS="--features gil"
292- # TARGET_DIR="target-gil"
293- # fi
294-
295- # echo "Using interpreter: $PY"
296- # "$PY" -c 'import sys; print("Python:", sys.version)'
297- # echo "py=$PY" >> "$GITHUB_OUTPUT"
298- # echo "flags=$FLAGS" >> "$GITHUB_OUTPUT"
299- # echo "target_dir=$TARGET_DIR">> "$GITHUB_OUTPUT"
300- # echo "skip=0" >> "$GITHUB_OUTPUT"
301-
302- # # Build on Linux (handles manylinux + cross aarch64)
303- # - name: Build wheel (Linux)
304- # if: runner.os == 'Linux' && steps.envsel.outputs.skip == '0'
305- # uses: PyO3/maturin-action@v1
306- # env:
307- # PYO3_PYTHON: ${{ steps.envsel.outputs.py }}
308- # CARGO_TARGET_DIR: ${{ steps.envsel.outputs.target_dir }}
309- # with:
310- # maturin-version: '1.9.4'
311- # command: build
312- # working-directory: py-radiate
313- # args: >
314- # --release
315- # -o dist
316- # ${{ steps.envsel.outputs.flags }}
317- # target: ${{ matrix.target }}
318- # manylinux: ${{ matrix.manylinux || 'off' }}
319-
320- # - name: Build wheel (macOS/Windows)
321- # if: runner.os != 'Linux' && steps.envsel.outputs.skip == '0'
322- # uses: PyO3/maturin-action@v1
323- # env:
324- # PYO3_PYTHON: ${{ steps.envsel.outputs.py }}
325- # CARGO_TARGET_DIR: ${{ steps.envsel.outputs.target_dir }}
326- # with:
327- # working-directory: py-radiate
328- # maturin-version: '1.9.4'
329- # command: build
330- # args: >
331- # --release
332- # -o dist
333- # ${{ steps.envsel.outputs.flags }}
334-
335- # - uses: actions/upload-artifact@v4
336- # if: steps.envsel.outputs.skip == '0'
337- # with:
338- # name: wheels-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.mode }}
339- # path: dist/*.whl
340-
341- # publish:
342- # name: Publish to PyPI
343- # needs: [ sdist, wheels ]
344- # runs-on: ubuntu-latest
345- # # if: true #startsWith(github.ref, 'refs/tags/v')
346- # if: ${{ needs.sdist.result == 'success' && needs.wheels.result == 'success' }}
347- # environment:
348- # name: publish_pypi
349- # steps:
350- # - uses: actions/download-artifact@v4
351- # with:
352- # path: dist
353- # merge-multiple: true
354-
355- # - run: ls -R dist
356-
357- # - name: Publish (Trusted Publisher)
358- # uses: pypa/gh-action-pypi-publish@release/v1
359- # with:
360- # verbose: true
361- # skip-existing: true
0 commit comments