| |
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
|