This is a summary of the current state of Radicle CI and near future plans. The goal is to make it a monthly newsletter.

Radicle is an open source, peer-to-peer code collaboration stack built on Git. Unlike centralized code hosting platforms, there is no single entity controlling the network. Repositories are replicated across peers in a decentralized manner, and users are in full control of their data and workflow.

Radicle CI adds continuous integration support to Radicle. Any Radicle node can choose to run CI for any repository it has access to. Any project using Radicle can choose which CI nodes it trusts. Radicle CI has integrations with a number of CI systems, and making new ones is easy.

Ambient CI is a CI engine that makes it safe and secure to run CI on untrusted code.

History

As this is the first report, we'll start with a summary of the history of Radicle CI.

Work on Radicle CI started the second half of 2023. We quickly picked the current architecture of a CI broker that listens to events from the node, and runs an adapter program to actually run CI on the change. This allows all the tricky parts to be in one program and makes it fairly easy to add support for new CI systems. At least it's easy from the Radicle side: some external CI systems make it tricky to integrate with them.

In 2024 the CI broker gained enough functionality to be usable. The first release was in April.

From the beginning, the CI broker was accompanied by a "native adapter", the simplest possible implementation of a CI system, which merely runs a shell snippet locally. This made Radicle CI feasible to use in some circumstances. The native adapter is, however, not very safe, because it provides not isolation at all. The main goal for the native adapter is to have some adapter for use when developing the CI broker.

There were soon adapters for Concourse and other CI systems, and a generic webhook adapter to ease integration to external CI systems.

In January 2025 the Ambient adapter was created. This made Radicle CI a realistic standalone CI system. It no longer requires using external CI systems, but use of them continues to be supported.

Early in 2025 the rad-ci program was created. It emulates what happens in a CI run on the local machine, initially for the native adapter, but soon also for the Ambient one. This means a developer does not have to wait for a CI node to have time to run CI for their change, they can just run it locally. Due to the nature of CI systems, rad-ci only really works with some adapters, because emulating a complicated CI system is a lot of work.

In mid-2025 Radicle job COBs were implemented in a production ready way. A job COB lets Radicle nodes update the CI status for a commit: they carry information about which node has run CI for which commit, and if it succeeded or failed. Lars had tried to implement them from 2023, but Fintan actually did it well. The COBs are created by the CI broker to notify other Radicle nodes that an automated process has been run for a specific commit. The Radicle desktop app shows CI status using them, and the web view is going to.

Also in mid-2025, the CI broker started supporting concurrent CI runs, although only one at a time per repository.

Current status

Radicle CI is in production use. It is not yet a joy to use. Much work remains to be done to get there. There are a few CI node instances, and Lars runs one using Ambient for open source Rust projects at https://callisto.liw.fi/.

Future plans

First of all, update this report monthly. The current rate of change probably doesn't warrant a weekly update.

Lars plans to concentrate on making it easier to set up and run Radicle CI at least for the rest of 2025.

Notes

If you have an open source Rust project and want to try Radicle and Ambient on callisto, see https://callisto.liw.fi/callisto/ for instructions.

Links

Quotes

No quotes yet, but please suggest something for the next issue.