Further portability fixes (hopefully the last) #29
Workflow file for this run
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: pull-request | |
on: | |
pull_request: | |
workflow_dispatch: | |
permissions: read-all | |
env: | |
OPAMROOT: ${{ github.workspace }}/.opam | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
with: | |
submodules: recursive | |
- name: Install APT dependencies | |
run: | | |
sudo apt update | |
sudo apt-get install -y libgmp-dev opam pkg-config lsb-release wget software-properties-common gnupg | |
- name: Install Clang 16 | |
run: | | |
wget https://apt.llvm.org/llvm.sh | |
chmod +x llvm.sh | |
sudo ./llvm.sh 16 | |
- name: Install Python dependencies | |
run: python3 -m pip install --no-deps --require-hashes --requirement requirements.txt | |
# The Opam package manager used by ocaml recompiles everything from source | |
# Installing the z3 library is especially slow | |
# So we cache the binaries generated from the build | |
# Note that this does not check hashes of dependencies so we may need to delete | |
# the cache manually every now and then. | |
- name: Cache OCaml tools and libraries | |
id: cache-opam | |
uses: actions/cache@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4.2.0 | |
with: | |
path: ~/work/asl-interpreter/asl-interpreter/.opam | |
key: opam | |
- name: Install OCaml tools and libraries | |
if: steps.cache-opam.outputs.cache-hit != 'true' | |
run: | | |
opam init --no-setup --disable-sandboxing --compiler=4.14.2 | |
opam env | |
opam install . --deps-only --with-test --with-doc --yes | |
- name: Build | |
run: | | |
eval $(opam env) | |
make build | |
- name: Test | |
run: | | |
eval $(opam env) | |
make test | |
- name: Build documentation | |
run: | | |
eval $(opam env) | |
make doc |