mirror of
https://github.com/Z3Prover/z3
synced 2026-06-18 06:36:24 +00:00
Implemented the largest cube heuristic from Bromberger and Weidenbach's paper on cubes. Also fixes an overflow bug in mzp. Use vswhere to find the visual studio version on windows in the build's ymls. --------- Signed-off-by: Lev Nachmanson <levnach@hotmail.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
260 lines
8 KiB
YAML
260 lines
8 KiB
YAML
name: Build NuGet Package
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
version:
|
|
description: 'Version number for the NuGet package (e.g., 4.17.0)'
|
|
required: true
|
|
default: '4.17.0'
|
|
push:
|
|
tags:
|
|
- 'z3-*'
|
|
|
|
permissions:
|
|
contents: write
|
|
|
|
jobs:
|
|
# Build Windows binaries
|
|
build-windows-x64:
|
|
runs-on: windows-latest
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v6.0.3
|
|
|
|
- name: Setup Python
|
|
uses: actions/setup-python@v6
|
|
with:
|
|
python-version: '3.x'
|
|
|
|
- name: Build Windows x64
|
|
shell: cmd
|
|
run: |
|
|
for /f "usebackq delims=" %%i in (`"C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -latest -prerelease -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath`) do set "VSPATH=%%i"
|
|
call "%VSPATH%\VC\Auxiliary\Build\vcvarsall.bat" x64 || exit /b 1
|
|
python scripts\mk_win_dist.py --x64-only --dotnet-key=%GITHUB_WORKSPACE%\resources\z3.snk --assembly-version=${{ github.event.inputs.version || '4.17.0' }} --zip
|
|
|
|
- name: Upload Windows x64 artifact
|
|
uses: actions/upload-artifact@v7
|
|
with:
|
|
name: windows-x64
|
|
path: dist/*.zip
|
|
retention-days: 1
|
|
|
|
build-windows-x86:
|
|
runs-on: windows-latest
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v6.0.3
|
|
|
|
- name: Setup Python
|
|
uses: actions/setup-python@v6
|
|
with:
|
|
python-version: '3.x'
|
|
|
|
- name: Build Windows x86
|
|
shell: cmd
|
|
run: |
|
|
for /f "usebackq delims=" %%i in (`"C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -latest -prerelease -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath`) do set "VSPATH=%%i"
|
|
call "%VSPATH%\VC\Auxiliary\Build\vcvarsall.bat" x86 || exit /b 1
|
|
python scripts\mk_win_dist.py --x86-only --dotnet-key=%GITHUB_WORKSPACE%\resources\z3.snk --assembly-version=${{ github.event.inputs.version || '4.17.0' }} --zip
|
|
|
|
- name: Upload Windows x86 artifact
|
|
uses: actions/upload-artifact@v7
|
|
with:
|
|
name: windows-x86
|
|
path: dist/*.zip
|
|
retention-days: 1
|
|
|
|
build-windows-arm64:
|
|
runs-on: windows-latest
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v6.0.3
|
|
|
|
- name: Setup Python
|
|
uses: actions/setup-python@v6
|
|
with:
|
|
python-version: '3.x'
|
|
|
|
- name: Build Windows ARM64
|
|
shell: cmd
|
|
run: |
|
|
for /f "usebackq delims=" %%i in (`"C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -latest -prerelease -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath`) do set "VSPATH=%%i"
|
|
call "%VSPATH%\VC\Auxiliary\Build\vcvarsall.bat" amd64_arm64 || exit /b 1
|
|
python scripts\mk_win_dist_cmake.py --arm64-only --dotnet-key=%GITHUB_WORKSPACE%\resources\z3.snk --assembly-version=${{ github.event.inputs.version || '4.17.0' }} --zip
|
|
|
|
- name: Upload Windows ARM64 artifact
|
|
uses: actions/upload-artifact@v7
|
|
with:
|
|
name: windows-arm64
|
|
path: build-dist\arm64\dist\*.zip
|
|
retention-days: 1
|
|
|
|
build-ubuntu:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v6.0.3
|
|
|
|
- name: Setup Python
|
|
uses: actions/setup-python@v6
|
|
with:
|
|
python-version: '3.x'
|
|
|
|
- name: Build Ubuntu
|
|
run: python scripts/mk_unix_dist.py --dotnet-key=$GITHUB_WORKSPACE/resources/z3.snk
|
|
|
|
- name: Upload Ubuntu artifact
|
|
uses: actions/upload-artifact@v7
|
|
with:
|
|
name: ubuntu
|
|
path: dist/*.zip
|
|
retention-days: 1
|
|
|
|
build-macos-x64:
|
|
runs-on: macos-14
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v6.0.3
|
|
|
|
- name: Setup Python
|
|
uses: actions/setup-python@v6
|
|
with:
|
|
python-version: '3.x'
|
|
|
|
- name: Build macOS x64
|
|
run: python scripts/mk_unix_dist.py --dotnet-key=$GITHUB_WORKSPACE/resources/z3.snk
|
|
|
|
- name: Upload macOS x64 artifact
|
|
uses: actions/upload-artifact@v7
|
|
with:
|
|
name: macos-x64
|
|
path: dist/*.zip
|
|
retention-days: 1
|
|
|
|
build-macos-arm64:
|
|
runs-on: macos-14
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v6.0.3
|
|
|
|
- name: Setup Python
|
|
uses: actions/setup-python@v6
|
|
with:
|
|
python-version: '3.x'
|
|
|
|
- name: Build macOS ARM64
|
|
run: python scripts/mk_unix_dist.py --dotnet-key=$GITHUB_WORKSPACE/resources/z3.snk --arch=arm64
|
|
|
|
- name: Upload macOS ARM64 artifact
|
|
uses: actions/upload-artifact@v7
|
|
with:
|
|
name: macos-arm64
|
|
path: dist/*.zip
|
|
retention-days: 1
|
|
|
|
# Package NuGet x64 (includes all platforms except x86)
|
|
package-nuget-x64:
|
|
needs: [build-windows-x64, build-windows-arm64, build-ubuntu, build-macos-x64, build-macos-arm64]
|
|
runs-on: windows-latest
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v6.0.3
|
|
|
|
- name: Setup Python
|
|
uses: actions/setup-python@v6
|
|
with:
|
|
python-version: '3.x'
|
|
|
|
- name: Download all artifacts
|
|
uses: actions/download-artifact@v8.0.1
|
|
with:
|
|
path: packages
|
|
|
|
- name: List downloaded artifacts
|
|
shell: bash
|
|
run: find packages -type f
|
|
|
|
- name: Move artifacts to flat directory
|
|
shell: bash
|
|
run: |
|
|
mkdir -p package-files
|
|
find packages -name "*.zip" -exec cp {} package-files/ \;
|
|
ls -la package-files/
|
|
|
|
- name: Setup NuGet
|
|
uses: nuget/setup-nuget@v4
|
|
with:
|
|
nuget-version: 'latest'
|
|
|
|
- name: Assemble NuGet package
|
|
shell: cmd
|
|
run: |
|
|
cd package-files
|
|
python ..\scripts\mk_nuget_task.py . ${{ github.event.inputs.version || '4.17.0' }} https://github.com/Z3Prover/z3 ${{ github.ref_name }} ${{ github.sha }} ${{ github.workspace }} symbols
|
|
|
|
- name: Pack NuGet package
|
|
shell: cmd
|
|
run: |
|
|
cd package-files
|
|
nuget pack out\Microsoft.Z3.sym.nuspec -OutputDirectory . -Verbosity detailed -Symbols -SymbolPackageFormat snupkg -BasePath out
|
|
|
|
- name: Upload NuGet package
|
|
uses: actions/upload-artifact@v7
|
|
with:
|
|
name: nuget-x64
|
|
path: |
|
|
package-files/*.nupkg
|
|
package-files/*.snupkg
|
|
retention-days: 30
|
|
|
|
# Package NuGet x86
|
|
package-nuget-x86:
|
|
needs: [build-windows-x86]
|
|
runs-on: windows-latest
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v6.0.3
|
|
|
|
- name: Setup Python
|
|
uses: actions/setup-python@v6
|
|
with:
|
|
python-version: '3.x'
|
|
|
|
- name: Download x86 artifact
|
|
uses: actions/download-artifact@v8.0.1
|
|
with:
|
|
name: windows-x86
|
|
path: packages
|
|
|
|
- name: List downloaded artifacts
|
|
shell: bash
|
|
run: find packages -type f
|
|
|
|
- name: Setup NuGet
|
|
uses: nuget/setup-nuget@v4
|
|
with:
|
|
nuget-version: 'latest'
|
|
|
|
- name: Assemble NuGet package
|
|
shell: cmd
|
|
run: |
|
|
cd packages
|
|
python ..\scripts\mk_nuget_task.py . ${{ github.event.inputs.version || '4.17.0' }} https://github.com/Z3Prover/z3 ${{ github.ref_name }} ${{ github.sha }} ${{ github.workspace }} symbols x86
|
|
|
|
- name: Pack NuGet package
|
|
shell: cmd
|
|
run: |
|
|
cd packages
|
|
nuget pack out\Microsoft.Z3.x86.sym.nuspec -OutputDirectory . -Verbosity detailed -Symbols -SymbolPackageFormat snupkg -BasePath out
|
|
|
|
- name: Upload NuGet package
|
|
uses: actions/upload-artifact@v7
|
|
with:
|
|
name: nuget-x86
|
|
path: |
|
|
packages/*.nupkg
|
|
packages/*.snupkg
|
|
retention-days: 30
|
|
|