Skip to content

ci: add offline c++ lifter syntax checking #459

ci: add offline c++ lifter syntax checking

ci: add offline c++ lifter syntax checking #459

Workflow file for this run

name: Test partial eval
on:
push:
branches:
- partial_eval
pull_request:
types: []
workflow_dispatch:
permissions:
contents: read
packages: read
defaults:
run:
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsshell
# XXX using multi-line string will fail since \n is stuck to the end of the argument.
shell: "nix develop github:katrinafyi/pac-nix#ocamlPackages_pac.asli --impure --accept-flake-config --command bash --noprofile --norc -eo pipefail {0}"
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: cachix/install-nix-action@v25
- run: echo 'preparing nix shell environment'
- run: dune build --profile release
- run: dune runtest -j4
- run: dune build '@coverage' -j4
- run: rm -rf _build/default/tests/coverage/encodings
- name: Upload new coverage results
if: always()
uses: actions/upload-artifact@v4
with:
name: coverage-output-${{ github.run_id }}
path: |
_build/default/tests/coverage
_build/.promotion-staging
offline:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: cachix/install-nix-action@v25
- run: echo 'preparing nix shell environment'
- run: dune build --profile release -j4
- run: echo ':gen A64 aarch64_* ocaml offlineASL' | OCAMLRUNPARAM=b dune exec asli
- run: dune build offlineASL -j4
- run: dune build @offline-coverage -j4
offline-cpp:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- uses: cachix/install-nix-action@v25
- run: echo 'preparing nix shell environment'
- uses: actions/setup-python@v5
with:
python-version: '3.11'
- run: python -m pip install 'meson~=1.4.0'
- run: dune build --profile release
- run: echo ':gen A64 .* cpp' | OCAMLRUNPARAM=b dune exec asli
- run: offlineASL-cpp/check.py
- name: 'syntax check generated C++ lifter'
run: meson compile -C offlineASL-cpp/build