package current

  1. Overview
  2. Docs

The most general API. BUILDER and PUBLISHER are just special cases of this.

include OPERATION
type t

Extra context or configuration information (e.g. credentials to access a remote service).

val id : string

A short and unique name for this operation, used as a filename component and database key. e.g. "docker-build"

module Key : WITH_DIGEST

The id, Key.t pair uniquely identifies the operation.

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.

The output of the pipeline stage.

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.

val pp : (Key.t * Value.t) Fmt.t

Describe the operation. e.g. "docker push $tag".

val auto_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.

val latched : 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.