Skip to content

Implementation of address translation #141

Implementation of address translation

Implementation of address translation #141

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
# cancel in-progress job when a new push is performed
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
strategy:
matrix:
version: [4.14.2]
rocq-version: [8.19.2]
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v3
- name: System dependencies (ubuntu)
run: |
sudo apt update
sudo apt install -y build-essential opam z3 cmake
# Cache with local pinned dependencies
- name: Restore pinned OPAM cache
id: cache-opam-restore-pinned
uses: actions/cache/restore@v4
with:
path: ~/.opam
key: pin-${{ matrix.version }}-${{ matrix.rocq-version }}-${{ hashFiles('*.opam') }}
# Cache with only repo dependencies, in particular Ocaml and Rocq
- name: Restore base OPAM cache
if: ${{ steps.cache-opam-restore-pinned.outputs.cache-hit != 'true' }}
id: cache-opam-restore
uses: actions/cache/restore@v4
with:
path: ~/.opam
key: ${{ matrix.version }}-${{ matrix.rocq-version }}
- name: Setup base OPAM
if: ${{ steps.cache-opam-restore-pinned.outputs.cache-hit != 'true' &&
steps.cache-opam-restore.outputs.cache-hit != 'true' }}
run: |
opam --version
opam init --yes --no-setup --disable-sandboxing --shell=sh --compiler=${{ matrix.version }}
opam repo add --yes rocq-released https://rocq-prover.org/opam/released
eval $(opam env --switch=${{ matrix.version }})
opam update
opam pin --yes --no-action coq ${{ matrix.rocq-version }}
opam pin --yes --no-action coq-stdpp 1.11.0
opam install --yes dune coq coq-stdpp
opam clean
opam clean -r
- name: Save base OPAM cache
uses: actions/cache/save@v4
if: ${{ steps.cache-opam-restore-pinned.outputs.cache-hit != 'true' &&
steps.cache-opam-restore.outputs.cache-hit != 'true' }}
with:
path: ~/.opam
key: ${{ matrix.version }}-${{ matrix.rocq-version }}
- name: Install pinned dependencies
if: ${{ steps.cache-opam-restore-pinned.outputs.cache-hit != 'true' }}
run: |
opam switch ${{ matrix.version }}
eval $(opam env)
opam install --deps-only --confirm-level=unsafe-yes .
# This is needed with opam 2.1, not with opam 2.3. I haven't tested 2.2
opam install --yes sail coq-sail-tiny-arm coq-sail-riscv
opam clean
opam clean -r
- name: Save pinned OPAM cache
uses: actions/cache/save@v4
if: ${{ steps.cache-opam-restore-pinned.outputs.cache-hit != 'true' }}
with:
path: ~/.opam
key: pin-${{ matrix.version }}-${{ matrix.rocq-version }}-${{ hashFiles('*.opam') }}
- name: Build
run: |
opam switch ${{ matrix.version }}
eval $(opam env)
dune build
- name: Tests
run: |
opam switch ${{ matrix.version }}
eval $(opam env)
dune runtest