build #42
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: build | |
on: | |
pull_request: | |
push: | |
branches: | |
- master | |
schedule: | |
# Prime the caches every Monday | |
- cron: 0 1 * * MON | |
jobs: | |
build: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- ubuntu-latest | |
ocaml-compiler: | |
- 4.08.x | |
- 4.09.x | |
- 4.10.x | |
- 4.11.x | |
- 4.12.x | |
- 4.13.x | |
- 5.0.x | |
skip-test: | |
- true | |
skip-doc: | |
- true | |
skip-effects: | |
- true | |
include: | |
- os: ubuntu-latest | |
ocaml-compiler: 4.14.x | |
skip-effects: true | |
skip-test: false | |
skip-doc: true | |
- os: macos-latest | |
ocaml-compiler: 4.14.x | |
skip-effects: true | |
skip-test: false | |
skip-doc: true | |
- os: windows-latest | |
ocaml-compiler: 4.14.x | |
skip-effects: true | |
skip-test: false | |
skip-doc: true | |
- os: ubuntu-latest | |
ocaml-compiler: 5.1.x | |
skip-effects: false | |
skip-test: false | |
skip-doc: false | |
- os: macos-latest | |
ocaml-compiler: 5.1.x | |
skip-effects: true | |
skip-test: false | |
skip-doc: true | |
- os: windows-latest | |
ocaml-compiler: ocaml.5.1.1,ocaml-option-mingw | |
skip-effects: false | |
skip-test: false | |
skip-doc: true | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Set git to use LF | |
run: | | |
git config --global core.autocrlf false | |
git config --global core.eol lf | |
git config --global core.ignorecase false | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set-up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: lts/* | |
- name: Set-up OCaml ${{ matrix.ocaml-compiler }} | |
if: runner.os == 'Windows' | |
uses: ocaml/setup-ocaml@v2 | |
with: | |
ocaml-compiler: ${{ matrix.ocaml-compiler }} | |
opam-repositories: | | |
dra27: https://github.com/dra27/opam-repository.git#windows-5.0 | |
default: https://github.com/ocaml-opam/opam-repository-mingw.git#sunset | |
opam: https://github.com/ocaml/opam-repository.git | |
dune-cache: true | |
opam-depext: ${{ !matrix.skip-test }} | |
opam-depext-flags: --with-test | |
- name: Set-up OCaml ${{ matrix.ocaml-compiler }} | |
if: runner.os != 'Windows' | |
uses: ocaml/setup-ocaml@v2 | |
with: | |
ocaml-compiler: ${{ matrix.ocaml-compiler }} | |
allow-prerelease-opam: true | |
dune-cache: true | |
opam-depext: ${{ !matrix.skip-test }} | |
opam-depext-flags: --with-test | |
- run: opam install . --best-effort | |
if: ${{ matrix.skip-test }} | |
- run: opam install . --with-test | |
if: ${{ !matrix.skip-test }} | |
- run: opam exec -- make all | |
if: ${{ !matrix.skip-test }} | |
- run: opam exec -- make tests | |
if: ${{ !matrix.skip-test }} | |
- run: opam exec -- dune build @all @runtest --profile using-effects | |
if: ${{ !matrix.skip-effects }} | |
- run: opam exec -- git diff --exit-code | |
if: ${{ !matrix.skip-test }} | |
- name: build doc | |
if: ${{ !matrix.skip-doc && github.event_name == 'push' && github.ref_name == 'master'}} | |
run: | | |
opam install odoc lwt_log cohttp-lwt-unix yojson ocp-indent graphics higlo | |
opam exec -- make doc | |
- name: synchronize doc | |
if: ${{ !matrix.skip-doc && github.event_name == 'push' && github.ref_name == 'master' }} | |
uses: JamesIves/github-pages-deploy-action@v4 | |
with: | |
branch: wikidoc | |
folder: doc-dev | |
clean: true | |
target-folder: doc/dev/ | |
lint-fmt: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set-up OCaml 4.14.x | |
uses: ocaml/setup-ocaml@v2 | |
with: | |
ocaml-compiler: 4.14.x | |
allow-prerelease-opam: true | |
dune-cache: true | |
- name: Lint fmt | |
uses: ocaml/setup-ocaml/lint-fmt@v2 |