diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml new file mode 100644 index 0000000..0c84fe8 --- /dev/null +++ b/.github/workflows/build-test.yml @@ -0,0 +1,49 @@ +name: Build and Test + +on: + push: + branches: + - master + pull_request: + +jobs: + build-and-test: + strategy: + fail-fast: false + matrix: + os: + - macos-latest + - ubuntu-latest + - windows-latest + ocaml-version: + - 4.14 + - 5.3 + + runs-on: ${{ matrix.os }} + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Use OCaml ${{ matrix.ocaml-version }} + uses: ocaml/setup-ocaml@v3 + with: + ocaml-compiler: ${{ matrix.ocaml-version }} + dune-cache: true + allow-prerelease-opam: true + + - run: opam install . --deps-only --with-test + + - name: build project + run: opam exec -- dune build + + - name: run test + run: opam exec -- dune runtest + + - run: opam install . --deps-only --with-test --criteria='+removed,+count[version-lag,solution]' --solver=builtin-0install + + - name: build project with lower bounds + run: opam exec -- dune build + + - name: run test with lower bounds + run: opam exec -- dune runtest