From 5d0918ff5e19ebc67e4698bc308f6562779b7110 Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Tue, 18 Aug 2026 08:27:36 +0800 Subject: feat: add new Mingling CI system crate (WIP) Add `mingling_ci` as a standalone CI system built on Mingling 0.4.0 to validate the next version, with report collection and manifest listing commands. --- mingling_ci/src/bin/ci.rs | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 mingling_ci/src/bin/ci.rs (limited to 'mingling_ci/src/bin') diff --git a/mingling_ci/src/bin/ci.rs b/mingling_ci/src/bin/ci.rs new file mode 100644 index 0000000..a212921 --- /dev/null +++ b/mingling_ci/src/bin/ci.rs @@ -0,0 +1,46 @@ +use just_progress::{ + progress::{self}, + renderer::ProgressSimpleRenderer, +}; +use mingling::{ + hook::ProgramHook, + setup::{ + ConfirmSetup, DirectoryEnvironmentSetup, ExitCodeSetup, + picker::{ConfirmFlagSetup, HelpFlagSetup, QuietFlagSetup}, + }, +}; +use tokio::join; + +use mingling_ci_system::ThisProgram; +use mingling_ci_system::res::*; + +#[tokio::main] +async fn main() { + let center = progress::init(); + let renderer = ProgressSimpleRenderer::new().with_subprogress(true); + let bind = progress::bind(center, move |name, state| renderer.update(name, state)); + + let (_, exit_code) = join!(bind, mingling_ci_begin()); + std::process::exit(exit_code); +} + +async fn mingling_ci_begin() -> i32 { + let mut program = ThisProgram::new(); + + program.with_hook(ProgramHook::empty().on_finish(|_| progress::close())); + + // Plugins + program.with_setup(ExitCodeSetup::default()); + program.with_setup(DirectoryEnvironmentSetup::default()); + + program.with_setup(HelpFlagSetup::default()); + program.with_setup(ConfirmFlagSetup::default()); + program.with_setup(QuietFlagSetup::default()); + + program.with_setup(ConfirmSetup); + + // CI Plugins + program.with_setup(ManifestsSetup); + + program.exec().await +} -- cgit