4 个版本 (破坏性更新)
新版本 0.4.0 | 2024 年 8 月 19 日 |
---|---|
0.3.0 | 2024 年 7 月 18 日 |
0.2.0 | 2024 年 6 月 6 日 |
0.1.0 | 2024 年 4 月 3 日 |
174 在 构建工具 中排名
134 每月下载量
用于 radicle-native-ci
200KB
5K SLoC
radicle-ci-broker
将集成添加到 Radicle,一个分布式 Git 主机和协作系统。
这还不是完全可用于生产的代码,但最终将成为一个监听 Radicle 节点变更并触发相关 CI 的事件。
架构
请参阅 doc
目录中的架构文档。简要概述:CI 代理从 Radicle 节点获取事件,根据其自己的配置过滤它们,并对任何通过过滤器的事件运行配置的适配器可执行文件。代理和适配器使用基于 JSON 的简单消息协议在 stdin/stdout 上进行通信。每个 CI 系统都有自己的适配器。
要在 doc
目录中构建文档,请运行 make
。您需要安装一些工具:Pandoc、graphviz (dot)、PlantUML、pikchr-cli。其他工具广泛打包,pikchr-cli 是一个 Rust 包,因此您可以使用 cargo install pikchr-cli
进行安装。
如下构建和发布文档
RADICLE_CI_BROKER_WEBROOT=/tmp/ci make -C doc publish
二进制文件
该包包含多个二进制文件
cib
--- 实际的 CI 代理- 这是您唯一需要关注的,其余的都是用于调试
cibtool
--- 节点操作员的管理工具,用于管理 CI 代理synthetic-events
--- CI 代理开发者的测试工具
打包
在 debian
目录中,为 Debian 提供了简单、简单、原始、仅个人使用的包装,Lars 使用它来构建个人使用的软件包。
从源代码树运行
要从源代码树运行 cib
或 cibtool
cargo run --bin cib -- --config config.yaml process-events
cargo run --bin cibtool -- --db ci-broker.db event list
注意 --
参数。它告诉 cargo run
后续所有参数都应传递给正在运行的程序,而不是由 cargo
本身使用。
运行测试
要运行 CI 代理的测试套件
cargo test
(对于 Rust 程序的常规方法。)
配置
配置文件在命令行中指定。它是一个 YAML 文件,例如
default_adapter: native
db: ci-broker.sqlite
adapters:
native:
command: radicle-native-ci
env:
RADICLE_NATIVE_CI: /home/liw/radicle/radicle-native-ci/x/config.yaml
sensitive_env:
some_secret: some_secret_value_that_is_not_logged
filters:
- !And
- !Repository "rad:z2e6URdt1we1iG1BCVqtx8QVgsX4a"
- !Or
- !Branch "main"
- !AnyPatchRef
或者如果您只想筛选补丁 COB 更新(例如评论),到指定的仓库
default_adapter: native
db: ci-broker.sqlite
adapters:
native:
command: radicle-native-ci
env:
RADICLE_NATIVE_CI: /home/liw/radicle/radicle-native-ci/x/config.yaml
sensitive_env:
some_secret: some_secret_value_that_is_not_logged
filters:
- !And
- !Repository "rad:z2e6URdt1we1iG1BCVqtx8QVgsX4a"
- !And
- !AnyPatch
- !Not
- !AnyPatchRef
这将以适配器的形式运行本地 CI 引擎,在任何通过筛选的仓库事件上。筛选器允许对指定仓库中 main
分支或任何 Radicle 补丁的任何更改。
许可
Radicle CI 代理根据 MIT 许可证和 Apache 许可证(版本 2.0)的条款分发。
有关详细信息,请参阅 LICENSE-APACHE 和 LICENSE-MIT。
依赖项
~41–76MB
~1.5M SLoC