Crates.io | radicle-native-ci |
lib.rs | radicle-native-ci |
version | |
source | src |
created_at | 2024-04-03 13:43:21.38674 |
updated_at | 2024-12-05 11:29:11.443482 |
description | Radicle native CI adapter for running directly on node host |
homepage | https://radicle.xyz |
repository | https://app.radicle.xyz/nodes/radicle.liw.fi/rad:z3qg5TKmN83afz2fj9z3fQjU8vaYE |
max_upload_size | |
id | 1195052 |
Cargo.toml error: | TOML parse error at line 22, column 1 | 22 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include` |
size | 0 |
This is an adapter for the Radicle CI broker, for performing CI runs
locally. This means it reads a JSON message from its stdin, and writes
two JSON messages to its stdout. Its configured via a configuration
file specified in the RADICLE_NATIVE_CI
environment variable. There
is currently no logging.
The CI run is performed locally, without any isolation. This is not safe and secure, but it's simple, and easy to get working. Do not use this unless you trust the repository and its dependencies.
The repository must contain a file ./radicle/native.yaml
that
specifies how CI is run for the repository. For example:
shell: |
cargo test --locked --workspace
This crate also includes the program rad-ci
, which runs the commands
the adapter runs when invoked by the CI broker. To use: install it on
your $PATH
(using cargo install
) and run:
rad ci
This will read .radicle/native.yaml
and run the shell commands
specified there.
(No command line arguments or options needed, nor any environment variables for this.)
See the documentation directory for an architecture document.
The adapter requires the RADICLE_NATIVE_CI
environment variable to
be set to the filename of a configuration file in YAML. For example:
base_url: https://ci.example.org/state
state: /srv/http
log: /home/_rad/native-ci.log
The fields are:
base_url
--- base URL for build logs (mandatory for access from CI broker page)
state
--- required, directory where per-run directories are stored
log
--- required, file where native CI should write a log
timeout
--- optional, maximum duration of the run, in seconds
There is simple, simplistic, rudimentary, personal-use-only packaging
for Debian in the debian
directory, used by Lars to build packages
for his own use.
To run the test suite for the CI broker:
cargo test
(The usual way, for a Rust program.)
Also, there is .radicle/native.yaml
for testing this with itself in
Radicle CI. You may want to run those manually.
Radicle native CI is distributed under the terms of both the MIT license and the Apache License (Version 2.0).
See LICENSE-APACHE and LICENSE-MIT for details.