name: mlmpfr CI

on:
  push:
  pull_request:
  schedule:
    - cron: '0 0 * * 0' # weekly

jobs:
  main:
    strategy:
      matrix:
        platform: [ubuntu-latest] # macos-latest
        ocaml-compiler: [4.12.1, 4.14.0, 5.0.0, 5.1.1, 5.2.0]
    runs-on: ${{ matrix.platform }}

    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Use OCaml ${{ matrix.ocaml-compiler }}
        uses: ocaml/setup-ocaml@v2
        with:
          ocaml-compiler: ${{ matrix.ocaml-compiler }}

      - name: Build mpfr from sources
        run: |
          wget --no-check-certificate https://www.mpfr.org/mpfr-4.2.1/mpfr-4.2.1.tar.gz
          tar xvzf mpfr-4.2.1.tar.gz
          mkdir build-mpfr
          pushd build-mpfr
          ../mpfr-4.2.1/configure
          make -j8
          sudo make install
          popd

      - name: Build and test mlmpfr
        run: |
          opam install . --deps-only --with-doc --with-test
          opam exec -- dune build @install --profile dev
          opam exec -- dune build @runtest --profile dev --verbose
          opam exec -- dune build @doc
          opam exec -- dune install
          # LD_LIBRARY_PATH is not exported by dune for executables
          # FIXME find a way to export LD_LIBRARY_PATH with dune
          LD_LIBRARY_PATH=/usr/local/lib opam exec -- dune exec examples/example.exe
