diff --git a/.github/workflows/bindings_python_ci.yml b/.github/workflows/bindings_python_ci.yml index 842fce7f83..e1c885357c 100644 --- a/.github/workflows/bindings_python_ci.yml +++ b/.github/workflows/bindings_python_ci.yml @@ -113,7 +113,7 @@ jobs: working-directory: "bindings/python" shell: bash run: | - uv pip install --reinstall dist/pyiceberg_core-*.whl + uv pip install --no-build --reinstall --find-links dist/ pyiceberg-core - name: Run tests working-directory: "bindings/python" shell: bash diff --git a/.github/workflows/release_python.yml b/.github/workflows/release_python.yml index 0638cff6df..1961b22509 100644 --- a/.github/workflows/release_python.yml +++ b/.github/workflows/release_python.yml @@ -191,6 +191,19 @@ jobs: working-directory: "bindings/python" command: build args: --release -o dist -i python3.12 # Explicitly set interpreter; manylinux containers have multiple Pythons and maturin may pick an older one + - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 + with: + version: "0.9.3" + enable-cache: true + # Verify the wheel is abi3-compatible and installable without building from source. + # Skipped for cross-compiled targets since they share the same maturin config; + # if abi3 is broken, the native target build will catch it. + - name: Verify wheel installs with no build fallback + if: matrix.target != 'aarch64' && matrix.target != 'armv7l' + working-directory: "bindings/python" + shell: bash + run: | + uv pip install --no-build --reinstall --system --find-links dist/ pyiceberg-core - name: Upload wheels uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: diff --git a/.github/workflows/release_python_nightly.yml b/.github/workflows/release_python_nightly.yml index 26b034554c..1dd6c8e2af 100644 --- a/.github/workflows/release_python_nightly.yml +++ b/.github/workflows/release_python_nightly.yml @@ -106,6 +106,20 @@ jobs: command: build args: --release -o dist -i python3.12 # Explicitly set interpreter; manylinux containers have multiple Pythons and maturin may pick an older one + - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 + with: + version: "0.9.3" + enable-cache: true + # Verify the wheel is abi3-compatible and installable without building from source. + # Skipped for cross-compiled targets since they share the same maturin config; + # if abi3 is broken, the native target build will catch it. + - name: Verify wheel installs with no build fallback + if: matrix.target != 'aarch64' && matrix.target != 'armv7l' + working-directory: "bindings/python" + shell: bash + run: | + uv pip install --no-build --reinstall --system --find-links dist/ pyiceberg-core + - name: Upload wheels uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: