I've had good experiences with travis recently, using the docker script (an example here: https://github.com/c-cube/iter/blob/master/.travis.yml). if your package is opam 2-friendly it's just a matter of a local pin and a few switches. there are other options (variables, really) to install extra deps or deal with optional deps. It's not particularly overkill since it just starts with a docker image with pre-installed opam switches. -- Simon Cruanes