49 lines
1.1 KiB
YAML
49 lines
1.1 KiB
YAML
name: Main workflow
|
|
|
|
on:
|
|
pull_request:
|
|
push:
|
|
schedule:
|
|
- cron: '0 1 * * SAT'
|
|
|
|
concurrency:
|
|
group: ci-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
Tests:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [macos-latest, ubuntu-latest, windows-latest]
|
|
ocaml:
|
|
- ocaml-base-compiler.5.0.0~alpha0
|
|
- 4.14.0
|
|
include:
|
|
- {os: ubuntu-latest, ocaml: 4.13.1}
|
|
- {os: ubuntu-latest, ocaml: 4.12.1}
|
|
- {os: ubuntu-latest, ocaml: 4.11.2}
|
|
exclude:
|
|
- {os: windows-latest, ocaml: ocaml-base-compiler.5.0.0~alpha0}
|
|
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Setup OCaml ${{ matrix.ocaml }}
|
|
uses: ocaml/setup-ocaml@v2
|
|
with:
|
|
cache-prefix: v1-${{ matrix.os }}-${{ matrix.ocaml }}
|
|
dune-cache: true
|
|
ocaml-compiler: ${{ matrix.ocaml }}
|
|
|
|
- name: Build dependencies
|
|
run: opam install . --deps-only --with-test
|
|
|
|
- name: Build library
|
|
run: opam exec -- dune build
|
|
|
|
- name: Run test suite
|
|
run: opam exec -- dune runtest
|