Use dune test stanza #2703
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" | |
- "4.09" | |
- "4.10" | |
- "4.11" | |
- "4.12" | |
- "4.13" | |
- "5.0" | |
- "5.1" | |
skip-test: | |
- true | |
skip-doc: | |
- true | |
skip-effects: | |
- true | |
include: | |
- os: ubuntu-latest | |
ocaml-compiler: "4.14" | |
skip-effects: true | |
skip-test: false | |
skip-doc: true | |
- os: macos-latest | |
ocaml-compiler: "4.14" | |
skip-effects: true | |
skip-test: false | |
skip-doc: true | |
- os: windows-latest | |
ocaml-compiler: "4.14" | |
skip-effects: true | |
skip-test: false | |
skip-doc: true | |
- os: ubuntu-latest | |
ocaml-compiler: "5.2" | |
skip-effects: false | |
skip-test: false | |
skip-doc: false | |
- os: macos-latest | |
ocaml-compiler: "5.2" | |
skip-effects: true | |
skip-test: false | |
skip-doc: true | |
- os: windows-latest | |
ocaml-compiler: "5.2" | |
skip-effects: false | |
skip-test: false | |
skip-doc: true | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Set git to use LF | |
if: runner.ocaml-compiler < 5.2 | |
run: | | |
git config --global core.autocrlf false | |
git config --global core.eol lf | |
git config --global core.ignorecase false | |
- name: Checkout tree | |
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 }} | |
uses: ocaml/[email protected] | |
with: | |
ocaml-compiler: ${{ matrix.ocaml-compiler }} | |
allow-prerelease-opam: true | |
dune-cache: true | |
opam-pin: false | |
- name: Pin dune | |
run: | | |
opam pin add -n dune https://github.com/vouillon/dune.git#expect-test-deps | |
- run: opam install conf-pkg-config | |
if: runner.os == 'Windows' | |
- 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-opam: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout tree | |
uses: actions/checkout@v4 | |
- name: Set-up OCaml | |
uses: ocaml/[email protected] | |
with: | |
ocaml-compiler: "5.2" | |
allow-prerelease-opam: true | |
dune-cache: true | |
- uses: ocaml/setup-ocaml/[email protected] | |
continue-on-error: true | |
lint-fmt: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout tree | |
uses: actions/checkout@v4 | |
- name: Set-up OCaml | |
uses: ocaml/[email protected] | |
with: | |
ocaml-compiler: "5.2" | |
allow-prerelease-opam: true | |
dune-cache: true | |
- uses: ocaml/setup-ocaml/[email protected] |