dev-ci 0.1.0

CI workflow generator and GitHub Action for the dev-* verification suite. Generates calibrated CI pipelines and runs the suite end-to-end on pull requests.
Documentation
  • Coverage
  • 100%
    12 out of 12 items documented2 out of 10 items with examples
  • Size
  • Source code size: 46.35 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 388.61 kB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 17s Average build duration of successful builds.
  • all releases: 21s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • Homepage
  • jamesgober/dev-ci
    0 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • jamesgober

What it does

dev-ci solves two problems in one crate:

  1. Generates calibrated CI workflow files (.github/workflows/ci.yml, GitLab CI, others later) tailored to the dev-* features a project actually uses. No more copy-pasting outdated CI templates from Stack Overflow.
  2. Runs the entire dev-* verification suite end-to-end inside a single GitHub Action step, with structured PR annotations and SARIF upload to the GitHub Security tab.

Why it exists

Setting up CI for a Rust project that uses test coverage, security auditing, fuzzing, mutation testing, and async validation today means hand-rolling 200+ lines of YAML across multiple jobs. dev-ci reduces that to one workflow step and one source of truth.

Quick start (CLI generator)

cargo install dev-ci
cd my-rust-project
dev-ci generate --target github-actions --with clippy,fmt,msrv

This writes a properly calibrated .github/workflows/ci.yml based on what's in your Cargo.toml and your dev-tools feature set.

Quick start (Library usage)

[dependencies]
dev-ci = "0.9"
use dev_ci::{Generator, Target};

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

std::fs::write(".github/workflows/ci.yml", yaml)?;
# Ok::<(), std::io::Error>(())

Quick start (GitHub Action)

In .github/workflows/ci.yml:

- name: Run dev-* suite
  uses: jamesgober/dev-ci@v1
  with:
    features: full

That's it. The action runs every enabled producer (dev-bench, dev-coverage, dev-security, etc.), uploads SARIF for code scanning, and posts a one-line PR status with a link to the full meta-report.

The dev-* suite

dev-ci is part of the wider dev-* verification suite:

Status

v0.9.x is pre-1.0. The generator works for basic GitHub Actions workflows. Multi-target support (GitLab, Buildkite, CircleCI), the GitHub Action runtime, and the PR-annotation pipeline land through the 0.9.x line.

Minimum supported Rust version

1.85 — pinned in Cargo.toml and verified by CI.

License

Apache-2.0. See LICENSE.