Various LSP improvements #1974
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build matrix | |
| on: [push, workflow_dispatch] | |
| # Required for vcpkg binary caching. See | |
| # https://learn.microsoft.com/en-us/vcpkg/github-integration | |
| permissions: | |
| contents: write | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| VCPKG_FEATURE_FLAGS: dependencygraph | |
| OPAMVERBOSE: 1 | |
| jobs: | |
| build: | |
| strategy: | |
| matrix: | |
| ocaml_version: [4.14.3, 5.2.1] | |
| os: [ubuntu-24.04, ubuntu-24.04-arm, macos-26, windows-2025] | |
| exclude: | |
| - os: macos-26 | |
| ocaml_version: 4.14.3 | |
| # Windows is only supported by OCaml 5 or later. | |
| - os: windows-2025 | |
| ocaml_version: 4.14.3 | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: System dependencies (Linux) | |
| if: runner.os == 'Linux' | |
| run: sudo apt install build-essential libgmp-dev cvc4 | |
| - name: System dependencies (macOS) | |
| if: runner.os == 'macOS' | |
| run: brew install --force --overwrite gpatch gmp pkgconf | |
| - name: System dependencies (Windows) | |
| if: runner.os == 'Windows' | |
| run: vcpkg install gmp | |
| - name: Setup Z3 | |
| id: z3 | |
| uses: cda-tum/setup-z3@v1 | |
| with: | |
| version: 4.15.3 | |
| - name: Set-up OCaml | |
| uses: ocaml/setup-ocaml@v3 | |
| with: | |
| ocaml-compiler: ${{ matrix.ocaml_version }} | |
| - name: Set LEMLIB env var | |
| if: runner.os == 'Windows' | |
| # Note we can't use `opam var lem:share` because lem hasn't been installed yet. | |
| run: echo "LEMLIB=$(opam var share)\lem\library" >> $env:GITHUB_ENV | |
| # This contains a fix for paths on Windows but hasn't been released yet. | |
| - name: Pin latest linksem | |
| if: runner.os == 'Windows' | |
| run: opam pin add linksem https://github.com/rems-project/linksem.git | |
| # Workaround for https://github.com/rems-project/lem/issues/38 | |
| - name: Install and fix lem | |
| if: runner.os == 'Windows' | |
| run: | | |
| opam install lem | |
| Rename-Item -Path "$(opam var lem:bin)\lem" -NewName "lem.exe" | |
| - name: Install Sail | |
| run: | | |
| opam pin --yes --no-action add . | |
| opam install sail --yes | |
| - name: Test Sail | |
| # Tests use lots of unix-isms currently (fork, mkdir -p, etc). | |
| if: runner.os != 'Windows' | |
| run: | | |
| opam exec -- bash etc/ci_core_tests.sh | |
| build-docker: | |
| strategy: | |
| matrix: | |
| os: [ubuntu-24.04, ubuntu-24.04-arm] | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - name: Build Dockerfile.nightly | |
| run: | | |
| docker build . -t sail -f ./Dockerfile.nightly --no-cache --progress plain |