Skip to content

👽 Build uv-ffi Wheels (Ultra-Exotic & Source) #24

👽 Build uv-ffi Wheels (Ultra-Exotic & Source)

👽 Build uv-ffi Wheels (Ultra-Exotic & Source) #24

name: "👽 Build uv-ffi Wheels (Ultra-Exotic & Source)"
on:
# NO release trigger — publish.yml dispatches this
workflow_dispatch:
inputs:
tag:
description: 'Tag to build (e.g. v0.10.7)'
required: false
default: ''
jobs:
build-pypy:
name: "PyPy ${{ matrix.pypy }} • ${{ matrix.os }}"
runs-on: ${{ matrix.os }}
continue-on-error: true
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
pypy: ["pypy3.9", "pypy3.10"]
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.inputs.tag || github.ref }}
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.pypy }}
- name: Build PyPy Wheel
uses: PyO3/maturin-action@v1
with:
working-directory: crates/uv-ffi
args: --release --out ${{ github.workspace }}/wheels/ --interpreter ${{ matrix.pypy }}
- name: Upload Wheels
uses: actions/upload-artifact@v4
with:
name: "exotic-wheels-pypy-${{ matrix.os }}-${{ matrix.pypy }}"
path: wheels/
build-graalpy:
name: "GraalPy • ${{ matrix.os }}"
runs-on: ${{ matrix.os }}
continue-on-error: true
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.inputs.tag || github.ref }}
- uses: actions/setup-python@v5
with:
python-version: "graalpy24.0"
- name: Build GraalPy Wheel
uses: PyO3/maturin-action@v1
with:
working-directory: crates/uv-ffi
args: --release --out ${{ github.workspace }}/wheels/ --interpreter python
- name: Upload Wheels
uses: actions/upload-artifact@v4
with:
name: "exotic-wheels-graalpy-${{ matrix.os }}"
path: wheels/
build-freethreaded:
name: "Free-Threaded 3.13t • ${{ matrix.os }}"
runs-on: ${{ matrix.os }}
continue-on-error: true
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.inputs.tag || github.ref }}
- uses: actions/setup-python@v5
with:
python-version: "3.13t"
- name: Build Free-Threaded Wheel
uses: PyO3/maturin-action@v1
with:
working-directory: crates/uv-ffi
args: --release --out ${{ github.workspace }}/wheels/ --interpreter python
- name: Upload Wheels
uses: actions/upload-artifact@v4
with:
name: "exotic-wheels-freethreaded-${{ matrix.os }}"
path: wheels/
build-wasm:
name: "WebAssembly (Pyodide)"
runs-on: ubuntu-latest
continue-on-error: true
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.inputs.tag || github.ref }}
- name: Setup Emscripten
uses: mymindstorm/setup-emsdk@v14
with:
version: 3.1.58
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Build WebAssembly Wheel
uses: PyO3/maturin-action@v1
with:
working-directory: crates/uv-ffi
target: wasm32-unknown-emscripten
args: --release --out ${{ github.workspace }}/wheels/ -i 3.12
- name: Upload Wheels
uses: actions/upload-artifact@v4
with:
name: "exotic-wheels-wasm"
path: wheels/