build & make test #27
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: "4.08.1" | |
| with-fmt: false | |
| job-name: "OCaml v4.08" | |
| - ocaml-version: "5.2" | |
| with-fmt: true | |
| job-name: "OCaml v5.2, with formatting check" | |
| name: Make test on ${{ matrix.cfg.job-name }} | |
| runs-on: ${{ matrix.os }} | |
| env: | |
| DUNE_CACHE: 'enabled-except-user-rules' | |
| steps: | |
| - name: Checkout tree | |
| uses: actions/checkout@v4 | |
| - name: Set-up OCaml ${{ matrix.cfg.ocaml-version }} | |
| 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 | |
| - run: opam install ocamlformat.0.26.2 | |
| if: ${{ matrix.cfg.with-fmt }} | |
| - run: opam exec -- dune fmt | |
| if: ${{ matrix.cfg.with-fmt }} |