mirror of
				https://github.com/Z3Prover/z3
				synced 2025-10-31 11:42:28 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			67 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| name: Pyodide Build
 | |
| 
 | |
| on:
 | |
|   schedule:
 | |
|     - cron: '0 0 */2 * *'
 | |
| 
 | |
| 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@v5
 | |
| 
 | |
|     - 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="${CFLAGS}" LDFLAGS="${LDFLAGS}" CXXFLAG="${CXXFLAGS}" ~/env/bin/pyodide build --exports whole_archive
 | |
|       env:
 | |
|          CFLAGS: "-fexceptions -s DISABLE_EXCEPTION_CATCHING=0 -g2"
 | |
|          LDFLAGS: "-fexceptions -s WASM_BIGINT"     
 | |
|          CXXFLAGS: "-fexceptions -s DISABLE_EXCEPTION_CATCHING=0"
 | |
|          
 | |
|     - 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 - <src/api/python/z3test.py z3
 | |
| 
 | |
|     - name: Package wheel
 | |
|       uses: actions/upload-artifact@master
 | |
|       with:
 | |
|           name: pyodide-wheel
 | |
|           path: src/api/python/dist/*.whl
 | |
|           retention-days: 1         
 | |
| 
 |