build & make test #41
This file contains hidden or 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 & make test | |
| on: | |
| pull_request: | |
| # push: | |
| workflow_dispatch: | |
| schedule: | |
| # Prime the caches every Monday | |
| - cron: 0 1 * * MON | |
| permissions: read-all | |
| # Copy-pasted from https://stackoverflow.com/questions/66335225/how-to-cancel-previous-runs-in-the-pr-when-you-push-new-commitsupdate-the-curre | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| build: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: | |
| - ubuntu-latest | |
| cfg: | |
| - ocaml-version: "ocaml-base-compiler.4.08.1,dune.3.10.0,zarith.1.13,menhir.20220210" | |
| with-fmt: false | |
| job-name: "OCaml v4.08" | |
| dune-cache: "enabled" | |
| - ocaml-version: "dune,zarith,menhir" | |
| with-fmt: true | |
| dune-cache: "enabled-except-user-rules" | |
| job-name: "OCaml latest lts" | |
| name: Make test on ${{ matrix.cfg.job-name }} | |
| runs-on: ${{ matrix.os }} | |
| env: | |
| DUNE_CACHE: ${{ matrix.cfg.dune-cache }} | |
| steps: | |
| - name: Checkout tree | |
| uses: actions/checkout@v4 | |
| - name: Set-up OCaml | |
| uses: ocaml/setup-ocaml@v3 | |
| with: | |
| ocaml-compiler: ${{ matrix.cfg.ocaml-version }} | |
| dune-cache: true | |
| - run: opam install . --deps-only --with-test | |
| - run: opam exec -- make build DUNE_PROFILE=dev | |
| - run: opam exec -- make test DUNE_PROFILE=dev | |
| - run: opam exec -- make install | |
| check-fmt: | |
| name: check format | |
| runs-on: ubuntu-latest | |
| env: | |
| DUNE_CACHE: enabled-except-user-rules | |
| steps: | |
| - name: Checkout tree | |
| uses: actions/checkout@v4 | |
| - name: Set-up OCaml | |
| uses: ocaml/setup-ocaml@v3 | |
| with: | |
| ocaml-compiler: ocamlformat.0.27.0 | |
| dune-cache: true | |
| - run: opam exec -- dune fmt | |