Skip to content

Workflow file for this run

name: build and test
on:
- push
- pull_request
jobs:
build:
strategy:
fail-fast: false
matrix:
os:
- macos-latest
- ubuntu-latest
# - windows-latest
ocaml-version:
- 4.14
- 5.1
runs-on: ${{ matrix.os }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Use OCaml ${{ matrix.ocaml-version }}
uses: ocaml/setup-ocaml@v2
with:
ocaml-compiler: ${{ matrix.ocaml-version }}
dune-cache: true
opam-depext-flags: "--with-test"
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
lint-fmt:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Use OCaml 5.1
uses: ocaml/setup-ocaml@v2
with:
ocaml-compiler: 5.1
dune-cache: true
allow-prerelease-opam: true
- name: Lint fmt
uses: ocaml/setup-ocaml/lint-fmt@v2
lint-opam:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Use OCaml 5.1
uses: ocaml/setup-ocaml@v2
with:
ocaml-compiler: 5.1
dune-cache: true
allow-prerelease-opam: true
- name: Lint opam
uses: ocaml/setup-ocaml/lint-opam@v2
deploy-doc:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Use OCaml 5.1
uses: ocaml/setup-ocaml@v2
with:
ocaml-compiler: 5.1
dune-cache: true
opam-depext-flags: "--with-doc"
allow-prerelease-opam: true
- name: Install dependencies
run: opam install . --deps-only --with-doc
- name: Build documentation
run: opam exec -- dune build @doc
- name: Set-up Pages
uses: actions/configure-pages@v4
- name: Upload artifact
uses: actions/upload-pages-artifact@v2
with:
path: _build/default/_doc/_html
- name: Deploy odoc to GitHub Pages
id: deployment
uses: actions/deploy-pages@v3
lint-doc:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Use OCaml 5.1
uses: ocaml/setup-ocaml@v2
with:
ocaml-compiler: 5.1
dune-cache: true
opam-depext-flags: "--with-doc"
allow-prerelease-opam: true
- name: Lint doc
uses: ocaml/setup-ocaml/lint-doc@v2
opam-dependency-submission:
runs-on: ubuntu-latest
steps:
- name: Checkout tree
uses: actions/checkout@v4
- name: Set-up OCaml 5.1
uses: ocaml/setup-ocaml@v2
with:
ocaml-compiler: 5.1
dune-cache: true
allow-prerelease-opam: true
- name: Opam Dependency Submission
uses: ocaml/setup-ocaml/analysis@v2