3 releases (breaking)

new 0.3.0 Feb 9, 2025
0.2.0 Feb 1, 2025
0.1.0 Sep 7, 2024

#585 in Build Utils

Download history 7/week @ 2024-11-02 128/week @ 2025-02-01 128/week @ 2025-02-08

256 downloads per month

Apache-2.0

50KB
677 lines

Cicero

Toolbox to help automate Rust CI builds with plain Rust.

Current goal is to provide helper functions, which are useful independent of how you structure your CI code. But you likely still want to structure your CI code according to the cargo-xtask pattern.

Features

Path Handling

Access paths in your repository with compile-time checks.

use cicero::path::repo_path;

let readme = repo_path!("README.md");
let doc_src = repo_path!("doc/src/");

For more information, see Cicero Path.

CLI Management (feature: commands)

Automatically install CLIs when needed, independent from the CLIs in your other projects.

use cicero::commands::*;

pub static CROSS: Cli = Crate::new("cross").into_cli();

CROSS.command()
    .arg("build")
    .arg("--release")
    .arg("--target=aarch64-unknown-linux-gnu")
    .status();

For more information, see Cicero Commands.

Tracing (feature: tracing, default-enabled)

Call cicero::init::tracing() at the start of your main-function to setup logging output.

You can then use the tracing crate to write out messages.
In particular with more complex workflows, using #[tracing::instrument] on significant functions
is helpful to discern where the logging output belongs to.

Changelog

You can find the changelog here: https://codeberg.org/trem/cicero/src/branch/main/CHANGELOG.md

Dependencies

~4–14MB
~195K SLoC