Radish alpha
r
Radicle CI broker
Radicle
Git (anonymous pull)
Log in to clone via SSH
doc: add goals to CI architecture doc
Lars Wirzenius committed 1 year ago
commit 92cbd0c73039c8c3b3f09bf19bb4fa86aaa76f99
parent b199175ac0e98d8d9a8219f0092861a977bf8638
1 file changed +33 -0
modified doc/architecture.md
@@ -25,6 +25,39 @@ Radicle provides its own, very simple "native CI" solution. It's just
good enough for the Radicle project to use itself. In addition, there
are adapters that integrate with external CI systems.

+
## Goal of Radicle CI
+

+
Context: The user is a software developer working on a project that
+
uses Radicle for version control. The project has an automated test
+
suite, and in-repository configuration for how to build the project
+
and run the test suite, in a format suitable for the CI engine being
+
used.
+

+
In the long run, the goal for CI in Radicle is "anything that makes it
+
easier, more fun, and faster to produce working software", but that's
+
not a concrete goal.
+

+
At this stage in the development of Radicle CI has two concrete goals:
+

+
* When I create a patch to propose a change, I am automatically told
+
  if the project branch with my committed changes fails to build or
+
  pass its test suite. I can also manually check what the status of
+
  that process ("CI run") is, and find out what the build log is, to
+
  investigate any problems.
+

+
  - This is "build and test the patch branch".
+

+
* When a project delegate merges my patch, both they and I are
+
  automatically told if the merge fails due to a merge conflict, or
+
  if, after the merge the project no longer builds or its test suite
+
  fails.
+

+
  - This is "build and test the master branch after the merge". This
+
    is useful, because sometimes a merged change breaks the build or
+
    the test suite, even when there are no merge conflicts.
+

+
It is not yet clear how notifications will work.
+

## Components in native CI

CI support in Radicle consists of several components. For native CI