diff options
| author | 魏曹先生 <1992414357@qq.com> | 2026-08-18 08:27:36 +0800 |
|---|---|---|
| committer | 魏曹先生 <1992414357@qq.com> | 2026-08-18 08:27:36 +0800 |
| commit | 5d0918ff5e19ebc67e4698bc308f6562779b7110 (patch) | |
| tree | a9d7f5fb54afd16056b0a4c24d118db2d95f8d78 /mingling_ci/src/bin/ci.rs | |
| parent | 00cf68abdd2be1cfca8b5a268d087ea2ccedf1dd (diff) | |
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.
Diffstat (limited to 'mingling_ci/src/bin/ci.rs')
| -rw-r--r-- | mingling_ci/src/bin/ci.rs | 46 |
1 files changed, 46 insertions, 0 deletions
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 +} |
