build & make test #62
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: | |
| # Minimal versions: we want to test both ends of the supported space | |
| - ocaml-compiler: "ocaml-base-compiler.4.08.1,dune.3.10.0,zarith.1.13,menhir.20220210,logs.0.7.0" | |
| with-type-check-asl: false | |
| job-name: "OCaml v4.08" | |
| dune-cache: "enabled" | |
| # Maximal version: this will automatically select the most recent version compatible. | |
| - ocaml-compiler: "dune,zarith,menhir,logs" | |
| with-type-check-asl: 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-compiler }} | |
| dune-cache: true | |
| - name: Install opam dependencies | |
| run: opam install . --deps-only --yes --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 exec -- make type-check-asl DUNE_PROFILE=dev | |
| if: ${{ matrix.cfg.with-type-check-asl }} | |
| 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.28.1 | |
| dune-cache: true | |
| - run: opam exec -- dune fmt | |