Library
Module
Module type
Parameter
Class
Class type
Datakit CI
Datakit_ci
is a library to describe reproducible, cachable and distributed computations. The library is specialiazed to handle build pipelines, where computations can take time, and where seeing the live outputs of the computation is as useful as the final step (think of live-logs of long-running builds).
The Core of Datakit_ci
are termcombinators to describe the composition of long-running computation jobs, with an attached, individual output (which can be live). A project configuration tied together a collection of job description and a simple description for the web interface, whose access is granted using ACLs.
TODO.
Core
module DK : Datakit_client.S
Datakit client library.
module Live_log : sig ... end
module Output : sig ... end
type 'a status = {
result : ('a, [ `Pending of string * unit Lwt.t | `Failure of string ]) Pervasives.result;
output : Output.logs;
}
The type for term status. It is a mix between the usual error monad, but where we also keep a local log for every computation. Morever, computation can be long-running, so there is a new `Pending
state with an indication of when the term is complete.
The type for job IDs. They are used to identfy the worker actually doing the computation.
module Target : sig ... end
module Term : sig ... end
module ACL : sig ... end
module Web : sig ... end
module Config : sig ... end
val run : ?info:Cmdliner.Term.info -> Config.t Cmdliner.Term.t -> unit
run ?info config
runs DataKitCI. info
defaults to a term that describes the binary as DataKitCI
, but does not include any of the other metadata such as versioning. Call Cmdliner.Term.info
directly to obtain an info
value that exposes all this extra data on the resulting command line.
val logs : Live_log.manager
The singleton log manager.
Extensions
module Process : sig ... end
module Monitored_pool : sig ... end
module Git : sig ... end
module Docker : sig ... end
Cache
module type BUILDER = sig ... end
module Cache : sig ... end
Utils
This should probably be replaced by something else or not be exposed at all.
module Utils : sig ... end
/ *
module Private : sig ... end