package current-web-pipelines

  1. Overview
  2. Docs
Simplify the creation of pipeline websites

Install

Dune Dependency

Authors

Maintainers

Sources

current-web-pipelines-0.1.tbz
sha256=efc3e28a9748f75ef1abf5bf2e559e96d1d233982970ef4b789a8cec3bf0d133
sha512=5c40d56a33b170d00a2d7dc03e3e6cba1041f8fd34bb645c812312cb1f96ab7279c9772704e0519eb1ed33b6275d51a027653833fcb2420eee7f990150a167fe

doc/src/current-web-pipelines/jobs.ml.html

Source file jobs.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
let job_tree_to_job_ids job_tree =
  let rec loop job_tree_list jt =
    match jt.State.node with
    | State.Item
        { metadata = Some { Current.Metadata.job_id = Some job_id; _ }; _ } ->
        job_id :: job_tree_list
    | State.Item _ -> job_tree_list
    | State.Group nodes -> List.concat_map (loop job_tree_list) nodes
  in
  loop [] job_tree

let failed = function
  | Ok _
  | Error (`Active `Ready)
  | Error (`Active `Waiting_for_confirmation)
  | Error (`Active `Running) ->
      false
  | Error `Blocked | Error (`Skipped _) | Error `Skipped_failure -> false
  | Error `Cancelled | Error (`Msg _) -> true

let rebuildable_jobs ~node_map_status stages =
  let failing_stages =
    List.filter
      (fun stage -> failed @@ State.stage_status ~node_map_status stage)
      stages
  in
  let job_trees_of_failing_stages =
    List.concat_map (fun stage -> stage.State.jobs) failing_stages
  in
  List.concat_map job_tree_to_job_ids job_trees_of_failing_stages
OCaml

Innovation. Community. Security.