From 90b457762b8f44c037edd86dc0f84073256f477e Mon Sep 17 00:00:00 2001 From: Anton Kochkov Date: Fri, 20 Dec 2024 15:32:06 +0800 Subject: [PATCH] ci: add a job to test OCaml bindings --- .github/workflows/bindings.yml | 48 ++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 .github/workflows/bindings.yml diff --git a/.github/workflows/bindings.yml b/.github/workflows/bindings.yml new file mode 100644 index 0000000000..2eb84c47b7 --- /dev/null +++ b/.github/workflows/bindings.yml @@ -0,0 +1,48 @@ +name: Bindings testing + +on: + - push + - pull_request + +permissions: read-all + +jobs: + ocaml: + strategy: + fail-fast: false + matrix: + os: + - ubuntu-latest + - macos-latest + - windows-latest + + runs-on: ${{ matrix.os }} + + steps: + - name: Checkout tree + uses: actions/checkout@v4 + + - name: Install Capstone + run: | + mkdir build && cd build + # build static library + cmake -DCAPSTONE_INSTALL=1 -DCMAKE_INSTALL_PREFIX=/usr .. + cmake --build . --config Debug + sudo cmake --build . --config Debug --target install + + - name: Set-up OCaml + uses: ocaml/setup-ocaml@v3 + with: + ocaml-compiler: 5 + + - name: Install Opam dependencies + run: opam install . --deps-only --with-test + working-directory: bindings/ocaml + + - name: Building OCaml bindings + run: opam exec -- dune build + working-directory: bindings/ocaml + + - name: Run tests + run: opam exec -- dune runtest + working-directory: bindings/ocaml