Extends current_web with additional routes providing a pipeline-oriented view of ocurrent's state
Published: 06 Jul 2023
current-web-pipelines is a wrapper on top of
ocurrent pipelines that provide tools to build complex interfaces, for example representing multi-stage pipelines.
There are three modules:
('value, 'state) Task.t is the equivalent of
'value Current.t with extra metadata of type
'state. While the value might not be available (for example because it is not computed yet), the state can be obtained at all time.
Task provides combinators and specialized constructors to construct a reactive state structure that can be extracted and displayed in various ways.
('output, 'node_metadata, 'stage_metadata, 'pipeline_metadata) State.pipeline is one example of state that can be bound to a task. This type represents the state of a pipeline run, using the following structure:
node tree list:
output or status
This tree structure is displayed using the
Web.Make to create an instance of the website. The API requires to use:
update_stateto track the state of a pipeline run. In particular each pipeline run is bound to a source (the reason why it runs) and is part of a group.
set_active_sourcesto track which sources are still active
current_webwith additional routes for the generated website
example/ folder for an end-to-end usage of
current-web-pipelines. It's also deployed in
mirage-ci (https://github.com/ocurrent/mirage-ci) and was used in