Radicle CI consists of the following functional components:
radicle-node (part of heartwood)
communicates with other nodes to get updates and sends events when
they’ve been stored in node storagecib (part of radicle-ci-broker)
receives the events, filters them, and decides when to trigger a CI
runcib spawns an “adapter” as a
sub-process; the adapter knows how to execute the CI run with some
specific CI system; there’s a different adapter for each kind of CI
systemcib if the
run succeeded or failedcibtool is a management tool for cib,
which can trigger CI to run, tell cib to shut down, and so
onIn addition:
rad-job tool can view or manipulate job COBs; it’s
part of the radicle-job
crateradicle-desktop
app is a graphical user interface for managing Radicle repositories; it
can show the result of CI runs of commits based on job COBsThe CI process is fundamentally:
cib decides to execute a CI run for the changecib spawns the appropriate adaptercib creates or updates a job COB accordingly