on: [push, pull_request] name: CI jobs: build: strategy: matrix: include: - name: ubuntu:production os: ubuntu-latest config: production --auto-download --all-bindings --editline --docs --static-binary cache-key: production python-bindings: true build-documentation: true check-examples: true store-to-release: true exclude_regress: 3-4 run_regression_args: --no-check-unsat-cores --no-check-proofs - name: macos:production os: macos-11 config: production --auto-download --all-bindings --editline --static-binary cache-key: production python-bindings: true check-examples: true store-to-release: true exclude_regress: 3-4 run_regression_args: --no-check-unsat-cores --no-check-proofs - name: ubuntu:production-clang os: ubuntu-18.04 env: CC=clang CXX=clang++ config: production --auto-download cache-key: productionclang check-examples: true exclude_regress: 3-4 run_regression_args: --no-check-unsat-cores --no-check-proofs - name: ubuntu:production-dbg os: ubuntu-18.04 config: production --auto-download --assertions --tracing --unit-testing --editline cache-key: dbg check-units: true exclude_regress: 3-4 run_regression_args: --no-check-unsat-cores - name: ubuntu:production-dbg-clang os: ubuntu-latest env: CC=clang CXX=clang++ config: production --auto-download --assertions --tracing --cln --gpl cache-key: dbgclang exclude_regress: 3-4 run_regression_args: --no-check-proofs name: ${{ matrix.name }} runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v2 - name: Install dependencies uses: ./.github/actions/install-dependencies with: with-documentation: ${{ matrix.build-documentation }} with-python-bindings: ${{ matrix.python-bindings }} - name: Setup caches uses: ./.github/actions/setup-cache with: cache-key: ${{ matrix.cache-key }} - name: Configure run: | ${{ matrix.env }} ./configure.sh ${{ matrix.config }} \ --prefix=$(pwd)/build/install \ --werror - name: Build run: make -j${{ env.num_proc }} working-directory: build - name: ccache Statistics run: ccache -s - name: Run tests uses: ./.github/actions/run-tests with: check-examples: ${{ matrix.check-examples }} check-python-bindings: ${{ matrix.python-bindings }} check-unit-tests: ${{ matrix.check-units }} regressions-args: ${{ matrix.run_regression_args }} regressions-exclude: ${{ matrix.exclude_regress }} - name: Build documentation if: matrix.build-documentation uses: ./.github/actions/build-documentation - name: Add binary to release if: matrix.store-to-release && startsWith(github.ref, 'refs/tags/') uses: ./.github/actions/add-to-release with: github-token: ${{ secrets.GITHUB_TOKEN }}