mirror of
				https://github.com/Z3Prover/z3
				synced 2025-11-04 05:19:11 +00:00 
			
		
		
		
	Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
		
			
				
	
	
		
			67 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
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@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         
 | 
						|
 |