chore: install sys deps #86
This file contains 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: Main workflow | |
on: | |
push: | |
pull_request: | |
branches: | |
- main | |
jobs: | |
build: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
# - macos-latest | |
- ubuntu-latest | |
# - windows-latest | |
ocaml-compiler: | |
- 4.14.x | |
# - 4.08.x | |
# - 4.06.x | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Use OCaml ${{ matrix.ocaml-compiler }} | |
uses: ocaml/setup-ocaml@v2 | |
with: | |
ocaml-compiler: ${{ matrix.ocaml-compiler }} | |
- name: Install system dependencies. | |
run: | | |
sudo apt-get update | |
sudo apt-get install libgdbm6 | |
sudo apt-get install libgdbm-dev | |
sudo apt-get install libzmq3-dev | |
- name: Install project dependencies | |
run: opam install . --deps-only --with-doc --with-test | |
- name: Build the project | |
run: opam exec -- dune build @install | |
- name: Restore imandra-tmp opam cache. | |
uses: actions/cache@v2 | |
id: imandracache | |
with: | |
path: | | |
/tmp/imandra-tmp/_opam | |
key: ${{ matrix.os }}-imandra-http-api | |
- name: Copy Imandra HTTP API | |
if: steps.imandracache.outputs.cache-hit == 'true' | |
run: | |
cp /tmp/imandra-tmp/_opam/bin/imandra-http-api /usr/local/bin | |
- name: Install Imandra HTTP API (if not available). | |
if: steps.imandracache.outputs.cache-hit != 'true' | |
run: | | |
mkdir -p /tmp/imandra-tmp && cd /tmp/imandra-tmp | |
opam switch create . --empty | |
opam repo add imandra https://github.com/AestheticIntegration/opam-repository.git | |
opam update | |
opam install imandra-http-api | |
cp _opam/bin/imandra-http-api /usr/local/bin/ | |
# TODO: Reenable this once we figure out how to get imandra server running in the CI. | |
- name: Run tests | |
run: opam exec -- dune runtest | |
# - name: Upload the build artifact | |
# uses: actions/upload-artifact@v2 | |
# with: | |
# name: ${{ matrix.os }}-${{ matrix.ocaml-version }}-world.exe | |
# path: _build/default/world.exe |