-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add new CI jobs (compiler x platform)
- Loading branch information
Showing
1 changed file
with
61 additions
and
0 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
# This workflow file is named 'more-ci' and is used to run additional CI checks | ||
# that complement the main CI workflow. It ensures that our code is tested | ||
# across multiple operating systems and OCaml compiler versions. | ||
# | ||
# Compared to the main 'ci.yml' job, this skips some steps that are not | ||
# necessary to check for every combination of os and ocaml-compiler, such as | ||
# generating coverage report, linting odoc, opam and fmt, etc. | ||
# | ||
# We prefer to keep it separate from the main CI workflow because we find it | ||
# more readable, over having too many conditional steps in the same job. | ||
|
||
name: more-ci | ||
|
||
on: | ||
push: | ||
branches: | ||
- main | ||
pull_request: | ||
branches: | ||
- "**" # This will match pull requests targeting any branch | ||
|
||
jobs: | ||
build: | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: | ||
- macos-latest | ||
- ubuntu-latest | ||
ocaml-compiler: | ||
- 5.3.x | ||
- 5.2.x | ||
exclude: | ||
# We exclude the combination already tested in the 'ci' workflow. | ||
- os: ubuntu-latest | ||
ocaml-compiler: 5.3.x | ||
|
||
runs-on: ${{ matrix.os }} | ||
|
||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v4 | ||
|
||
- name: Setup OCaml | ||
uses: ocaml/setup-ocaml@v3 | ||
with: | ||
ocaml-compiler: ${{ matrix.ocaml-compiler }} | ||
opam-repositories: | | ||
default: https://github.com/ocaml/opam-repository.git | ||
mbarbin: https://github.com/mbarbin/opam-repository.git | ||
# janestreet-bleeding: https://github.com/janestreet/opam-repository.git | ||
# janestreet-bleeding-external: https://github.com/janestreet/opam-repository.git#external-packages | ||
|
||
# We build and run tests for a subset of packages. More tests are run in | ||
# the development workflow and as part of the main CI job. These are the | ||
# tests that are checked for every combination of os and ocaml-compiler. | ||
- name: Install dependencies | ||
run: opam install ./bopkit.opam ./bopkit-tests.opam --deps-only --with-test | ||
|
||
- name: Build & Run tests | ||
run: opam exec -- dune build @all @runtest -p bopkit,bopkit-tests |