module Job:sig..end
Jobs are for a given switch version and host configurations. Jobs have pre-requisites: these are objects which needs to be built and be put into the worker context before the job could start.
Completed jobs produce output object(s) which
will be consummed by other jobs.
typeid =[ `Job ] Id.t
Id.digest
on the concatenation of Job.create arguments (after
normalisation).type t
val create : ?inputs:id list ->
Host.t -> Switch.t -> (Package.t * Package.info) list -> tcreate h c pkgs is the job of building the list of packages
pkgs using the OCaml compiler switch c on a worker having h
as host configuration.
The job will be able to access the outputs objects created by the
(optional) inputs jobs.
val id : t -> idid t id t's deterministic identifier. It is obtained by hasing
a stable representation of t's components.val switch : t -> Switch.tswitch t is t's switch.val host : t -> Host.thost t is t's host.val inputs : t -> id listinput t are t's job inputs.val packages : t -> (Package.t * Package.info) listpackages t are the packages that t has to build.val equal : t -> t -> boolequal is the job equality.val compare : t -> t -> intcompare compares jobs.val json : t Jsont.codecjson is the JSON codec for jobs.val pp : t Fmt.tpp formats jobs.typestatus =[ `Cancelled | `Failure | `Pending | `Runnable | `Running | `Success ]
val json_status : status Jsont.codecjson_status is the JSON codec for job status.val pp_status : status Fmt.t
val task_status : status list -> Task.statustask_status s is the status summary of s. If all status are
`Success then it is a `Success. If all status are `Failed
then it is also `Failed. Otherwise it is `Pending.