Continuous Integration for OCaml

This is a work in progress document, contact

The OCaml project has a lot of physical infrastructure to host services and run automated continuous integration tests. OCaml Labs maintains a bunch of these, mainly centred around the DataKit CI continuous integration system released by Docker. This page describes how the CI works, where it is deployed, and what the roadmap for next steps are.


The DataKit CI is a domain-specific language to describe continuous integration tests that should run on every commit to a repository. The test descriptions define tests that take a precise set of Git inputs as their inputs, run functions across them, and report the results as GitHub statuses. If any changes are pushed to the source code repositories being tracked, the tests are rerun on the new code. Results are stored in Git branches, so that they can be checked out individually and inspected to help diagnose where failures came from.

The details of DataKit CI are documented in the repository, and the rest of this page describes the OCaml, OPAM and MirageOS test pieces specifically, and their relevance to OCaml developers.




Maintainers Guide

OPAM Repository


  • What tests are run
  • What the UI does
  • How to checkout the state code

Next Steps

Phase 1


Recent Activity

: Windows Unicode Support - A Bug-Fix 12 Years in the Making
: Fuzzing for CI Workflows
: Testing Your Own Fork With OCaml's GitHub CI
: Irmin 1.0 Released!
: Pipelines with OCaml - Managing version-controlled data with Datakit
: OCamlot: OCaml Online Testing