Skip to content

PIQP win diag: loop conic.py 5x, dump real test tracebacks #28

PIQP win diag: loop conic.py 5x, dump real test tracebacks

PIQP win diag: loop conic.py 5x, dump real test tracebacks #28

name: Reproduce ubuntu-arm import failure with the EXACT failing CI artifact
# Earlier we loaded the release-wheel _casadi.so on the GHA arm runner
# and it worked. But the CI test-python (ubuntu-24.04-arm) keeps failing
# on the workflow-artifact zip (different MD5 from the release wheel
# despite both originating from python-dockcross). This workflow pulls
# the *actual* failing artifact from casadi/casadi via cross-repo
# download-artifact and tries to load it under the same conda env.
on: [push, workflow_dispatch]
jobs:
diag:
runs-on: ubuntu-24.04-arm
steps:
# Replicate CI exactly: checkout casadi/casadi as the workspace root, unzip
# the artifact into ./casadi (mirroring binaries.yml line 1100), and run
# `cd test/python && python -c "from casadi import *"`.
- name: Checkout casadi/casadi (abi3)
uses: actions/checkout@v6.0.2
with:
repository: casadi/casadi
ref: abi3
- name: Download FAILING CI artifact from casadi/casadi
uses: actions/download-artifact@v8.0.1
with:
name: casadi-linux-aarch64-py311
run-id: 25957641744
github-token: ${{ secrets.GITHUB_TOKEN }}
repository: casadi/casadi
- name: Layout
run: |
ls -la
ls -la *.zip || true
- name: "Unpack (mirrors CI - unzip py311.zip -d casadi)"
run: |
unzip -q casadi-linux-aarch64-py311.zip -d casadi
ls casadi/casadi/ | head -10
- name: Inspect _casadi.so
run: |
F=casadi/casadi/_casadi.so
file $F
md5sum $F
readelf -d $F | grep -E "NEEDED|RPATH|RUNPATH"
echo "--- ldd ---"
ldd $F
- name: Set up conda python 3.11 (matches CI test-python)
uses: conda-incubator/setup-miniconda@77236efeba76d591229f44c36f2469426cc33dec
with:
python-version: 3.11
activate-environment: py3.11
auto-update-conda: true
channels: pkgs/main, conda-forge, conda-forge/label/python_rc
- name: conda install pip + numpy etc (EXACTLY mirror CI)
shell: bash -el {0}
run: |
conda install -y pip # CI does this (no -n)
pip install numpy scipy pandas looseversion
pip install pyright # ← CI installs this; previously skipped
- name: Run from test/python like CI does (alltests.py)
continue-on-error: true
shell: bash -el {0}
env:
PYTHONPATH: ${{ github.workspace }}/casadi
run: |
set -x
ls "$PYTHONPATH/casadi/_casadi.so"
which python
python -V
cd test/python
# First: just the import probe
python -c 'import casadi; print("simple-import OK", casadi.__version__)' 2>&1 | tail -10 || true
# Then: full alltests.py to match CI EXACTLY
timeout 60 python alltests.py 2>&1 | head -30
echo "alltests exit=$?"
- name: LD_DEBUG=libs,files dump
continue-on-error: true
shell: bash -el {0}
env:
PYTHONPATH: ${{ github.workspace }}/casadi
run: |
cd test/python
LD_DEBUG=libs,files python -c 'from casadi import *' 2>&1 | tail -80 || true