Skip to main content

Crate dev_ci

Crate dev_ci 

Source
Expand description

§dev-ci

CI workflow generator for the dev-* verification suite.

dev-ci does two things:

  1. Generate calibrated CI pipelines (.github/workflows/ci.yml, others to follow) tailored to the dev-* features a project uses.
  2. Run the suite end-to-end on pull requests (planned for later in the 0.9.x line — the runtime side ships as a GitHub Action).

§Quick example

use dev_ci::{Generator, Target};

let yaml = Generator::new()
    .target(Target::GitHubActions)
    .with_clippy()
    .with_fmt()
    .with_docs()
    .with_msrv("1.85")
    .generate();

assert!(yaml.contains("actions/checkout@v5"));

§Determinism

Output is byte-deterministic for a given Generator configuration. No clock reads, no random IDs, lists iterate in insertion order.

§What’s in 0.9.0

  • GitHub Actions output (every job uses actions/checkout@v5, Swatinem/rust-cache@v2, and the documented patterns from the existing dev-* suite CI).
  • Builder methods for the full standard surface: test matrix, feature toggles, clippy, fmt, docs, msrv, sibling path-dep cloning, cache toggle, custom workflow name + branches.
  • CLI binary (dev-ci generate ...) wrapping the library.

Other targets (GitLab, Buildkite, CircleCI) and the runtime-action side are planned for later 0.9.x releases.

Structs§

Generator
Builder for a CI workflow document.
PathDep
A sibling path-dependency that the CI workflow should git clone before running cargo.

Enums§

Target
Supported CI target platforms.