mirror of
https://github.com/Z3Prover/z3
synced 2026-04-19 18:33:35 +00:00
Add riscv64 wheel builds to nightly and release PyPI publishing (#9153)
* Initial plan * Add riscv64 PyPI wheel builds to nightly, release, and validation workflows Agent-Logs-Url: https://github.com/Z3Prover/z3/sessions/c22657c9-a5a9-4dad-b5d7-002209b7afe1 Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
This commit is contained in:
parent
d7f8fb5a1c
commit
8969921cab
3 changed files with 143 additions and 2 deletions
51
.github/workflows/nightly-validation.yml
vendored
51
.github/workflows/nightly-validation.yml
vendored
|
|
@ -665,6 +665,57 @@ jobs:
|
|||
pip install $wheel.FullName
|
||||
python -c "import z3; x = z3.Int('x'); s = z3.Solver(); s.add(x > 0); print('Result:', s.check()); print('Model:', s.model())"
|
||||
|
||||
validate-python-wheel-riscv64:
|
||||
name: "Validate Python wheel for RISC-V 64"
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event.workflow_run.conclusion == 'success' || github.event_name == 'workflow_dispatch' }}
|
||||
timeout-minutes: 30
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v6.0.2
|
||||
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: '3.x'
|
||||
|
||||
- name: Download RISC-V 64 Python wheel from release
|
||||
env:
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
run: |
|
||||
TAG="${{ github.event.inputs.release_tag }}"
|
||||
if [ -z "$TAG" ]; then
|
||||
TAG="Nightly"
|
||||
fi
|
||||
gh release download $TAG --pattern "*riscv64.whl" --dir wheels
|
||||
|
||||
- name: Verify wheel platform tag and contents
|
||||
run: |
|
||||
pip install wheel
|
||||
WHEEL_FILE=$(ls wheels/*.whl | head -n 1)
|
||||
echo "Wheel file: $WHEEL_FILE"
|
||||
|
||||
# Check that the wheel has a riscv64 platform tag
|
||||
WHEEL_NAME=$(basename $WHEEL_FILE)
|
||||
echo "Wheel name: $WHEEL_NAME"
|
||||
if echo "$WHEEL_NAME" | grep -q "riscv64"; then
|
||||
echo "riscv64 platform tag found"
|
||||
else
|
||||
echo "ERROR: riscv64 platform tag not found in wheel name"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Inspect wheel contents
|
||||
python -m zipfile -l $WHEEL_FILE
|
||||
|
||||
# Verify wheel contains z3 library
|
||||
if python -m zipfile -l $WHEEL_FILE | grep -q "libz3"; then
|
||||
echo "libz3 found in wheel"
|
||||
else
|
||||
echo "ERROR: libz3 not found in wheel"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# ============================================================================
|
||||
# MACOS DYLIB HEADERPAD VALIDATION
|
||||
# ============================================================================
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue