Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Source file s.ml
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120moduletypeWITH_DIGEST=sigtypetvaldigest:t->string(** [digest t] is a unique string for [t] that can be used as a primary key in a database.
Two [t]s are considered equal if they have the same digest. *)endmoduletypeWITH_MARSHAL=sigtypetvalmarshal:t->string(** Convert [t] to a form suitable for storage in the database. *)valunmarshal:string->t(** Restore a [t] from a string previously produced by [marshal].
Raise an exception if the value cannot be read (e.g. the format has changed). *)endmoduletypeOPERATION=sigtypet(** Extra context or configuration information (e.g. credentials to access a remote service). *)valid:string(** A short and unique name for this operation, used as a filename component and database key.
e.g. "docker-build" *)moduleKey:WITH_DIGEST(** The [id, Key.t] pair uniquely identifies the operation. *)end(** A builder generates an output value from an input key. *)moduletypeBUILDER=sigincludeOPERATIONmoduleValue:WITH_MARSHAL(** The result of a build. *)valbuild:t->Current.Job.t->Key.t->Value.tCurrent.or_errorLwt.t(** [build t j k] builds [k].
Call [Job.start j] once any required resources have been acquired.
Log messages can be written to [j]. *)valpp:Key.tFmt.t(** Describe the operation. e.g. ["docker build $src"]. *)valauto_cancel:bool(** [true] if an operation should be cancelled if it is no longer needed, or
[false] to cancel only when the user explicitly requests it. *)end(** A publisher sets a key to a value. *)moduletypePUBLISHER=sigincludeOPERATIONmoduleValue:WITH_DIGEST(** The value to publish. *)moduleOutcome:WITH_MARSHAL(** Extra information about the result, if any.
Usually this is just [Current.Unit]. *)valpublish:t->Current.Job.t->Key.t->Value.t->Outcome.tCurrent.or_errorLwt.t(** [publish t j k v] sets output [k] to value [v].
Call [Job.start j] once any required resources have been acquired.
Log messages can be written to [j]. *)valpp:(Key.t*Value.t)Fmt.t(** Describe the operation. e.g. ["docker push $tag"]. *)valauto_cancel:bool(** This affects what happens if we're in the process of outputting a value and
then we decide to output a different value instead.
If [true], the old operation will be cancelled immediately.
If [false], the old operation will run to completion first. *)end(** The most general API.
{!BUILDER} and {!PUBLISHER} are just special cases of this. *)moduletypeGENERIC=sigincludeOPERATIONmoduleValue:WITH_DIGEST(** A second input value, which is not part of the key
(so there can be only one value for any key at one time).
For outputs, this is used to hold the value to which the output should be set.
For builds, non-essential inputs can be placed here instead of in the key
so that the old outcome can be latched for minor changes. For example, when
testing a Git commit the commit to test would be the key, but the latest
version of the test platform might be the value. *)moduleOutcome:WITH_MARSHAL(** The output of the pipeline stage. *)valrun:t->Current.Job.t->Key.t->Value.t->Outcome.tCurrent.or_errorLwt.t(** [run t j k v] performs the operation.
Call [Job.start j] once any required resources have been acquired.
Log messages can be written to [j]. *)valpp:(Key.t*Value.t)Fmt.t(** Describe the operation. e.g. ["docker push $tag"]. *)valauto_cancel:bool(** This affects what happens if we're in the process of outputting a value and
then we decide to output a different value instead.
If [true], the old operation will be cancelled immediately.
If [false], the old operation will run to completion first. *)vallatched:bool(** This controls what happens to the reported outcome while changing to a new value.
If [true], we continue to report the previous outcome until the new job is complete.
If [false], the output is set to active during the update. *)end