aboutsummaryrefslogtreecommitdiff
path: root/mingling_ci/src/bin/ci.rs
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-08-18 08:27:36 +0800
committer魏曹先生 <1992414357@qq.com>2026-08-18 08:27:36 +0800
commit5d0918ff5e19ebc67e4698bc308f6562779b7110 (patch)
treea9d7f5fb54afd16056b0a4c24d118db2d95f8d78 /mingling_ci/src/bin/ci.rs
parent00cf68abdd2be1cfca8b5a268d087ea2ccedf1dd (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.rs46
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
+}