Skip to content

Various LSP improvements #1974

Various LSP improvements

Various LSP improvements #1974

Workflow file for this run

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