name: CI on: push: branches: [ "**" ] pull_request: branches: [ "**" ] workflow_dispatch: permissions: contents: read concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true # This workflow migrates jobs from azure-pipelines.yml to GitHub Actions. # See .github/workflows/CI_MIGRATION.md for details on the migration. jobs: # ============================================================================ # Linux Python Debug Builds # ============================================================================ linux-python-debug: name: "Ubuntu build - python make - ${{ matrix.variant }}" runs-on: ubuntu-latest timeout-minutes: 90 strategy: fail-fast: false matrix: variant: [MT, ST] include: - variant: MT cmdLine: 'python scripts/mk_make.py -d --java --dotnet' runRegressions: true - variant: ST cmdLine: './configure --single-threaded' runRegressions: false steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup Python uses: actions/setup-python@v5 with: python-version: '3.x' - name: Configure run: ${{ matrix.cmdLine }} - name: Build run: | set -e cd build make -j3 make -j3 examples make -j3 test-z3 cd .. - name: Run unit tests run: | cd build ./test-z3 -a cd .. - name: Clone z3test if: matrix.runRegressions run: git clone https://github.com/z3prover/z3test z3test - name: Run regressions if: matrix.runRegressions run: python z3test/scripts/test_benchmarks.py build/z3 z3test/regressions/smt2 # ============================================================================ # Manylinux Python Builds # ============================================================================ manylinux-python-amd64: name: "Python bindings (manylinux Centos AMD64) build" runs-on: ubuntu-latest timeout-minutes: 90 container: "quay.io/pypa/manylinux_2_34_x86_64:latest" steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup Python virtual environment run: "/opt/python/cp38-cp38/bin/python -m venv $PWD/env" - name: Install build dependencies run: | source $PWD/env/bin/activate pip install build git+https://github.com/rhelmot/auditwheel - name: Build Python wheel run: | source $PWD/env/bin/activate cd src/api/python python -m build AUDITWHEEL_PLAT= auditwheel repair --best-plat dist/*.whl cd ../../.. - name: Test Python wheel run: | source $PWD/env/bin/activate pip install ./src/api/python/wheelhouse/*.whl python -