name: Pyodide Build on: push: branches: [ master ] env: BUILD_TYPE: Release permissions: contents: read jobs: build: runs-on: ubuntu-24.04 strategy: fail-fast: false steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup packages run: sudo apt-get update && sudo apt-get install -y python3-dev python3-pip python3-venv - name: Create venv run: python3 -m venv ~/env - name: Install pyodide run: ~/env/bin/pip install pyodide-build pyodide-cli - name: Configure CMake and build run: git clone https://github.com/emscripten-core/emsdk.git ~/emsdk && cd ~/emsdk && PYODIDE_EMSCRIPTEN_VERSION=$(~/env/bin/pyodide config get emscripten_version) && ./emsdk install ${PYODIDE_EMSCRIPTEN_VERSION} && ./emsdk activate ${PYODIDE_EMSCRIPTEN_VERSION} - name: Build Z3 run: source ~/emsdk/emsdk_env.sh && cd src/api/python && CFLAGS="-fexceptions -s PTHREAD_POOL_SIZE=0 -s PTHREAD_POOL_SIZE_STRICT=0 -s MODULARIZE=1 -pthread-s WASM_BIGINT -s USE_PTHREADS=1" LDFLAGS="-fexceptions" ~/env/bin/pyodide build --exports whole_archive - name: Setup env-pyodide run: source ~/env/bin/activate && source ~/emsdk/emsdk_env.sh && pyodide venv ~/env-pyodide - name: Setup z3 wheel run: | ~/env-pyodide/bin/pip install src/api/python/dist/*.whl ~/env-pyodide/bin/python -