From 297a88751db18844554ce1b5b9198877ac378ed1 Mon Sep 17 00:00:00 2001 From: Guramrit Singh Date: Mon, 17 Nov 2025 15:09:25 -0800 Subject: [PATCH 1/3] First very raw pass --- .../src/_jobs/build_test_results_website.rs | 55 +++++++++++++++++++ flowey/flowey_lib_hvlite/src/_jobs/mod.rs | 1 + 2 files changed, 56 insertions(+) create mode 100644 flowey/flowey_lib_hvlite/src/_jobs/build_test_results_website.rs diff --git a/flowey/flowey_lib_hvlite/src/_jobs/build_test_results_website.rs b/flowey/flowey_lib_hvlite/src/_jobs/build_test_results_website.rs new file mode 100644 index 0000000000..547be308f7 --- /dev/null +++ b/flowey/flowey_lib_hvlite/src/_jobs/build_test_results_website.rs @@ -0,0 +1,55 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +//! Build the test-results website using npm. + +use flowey::node::prelude::*; + +flowey_request! { + pub struct Params { + pub done: WriteVar, + } +} + +new_simple_flow_node!(struct Node); + +impl SimpleFlowNode for Node { + type Request = Params; + + fn imports(ctx: &mut ImportCtx<'_>) { + ctx.import::(); + ctx.import::(); + ctx.import::(); + } + + fn process_request(request: Self::Request, ctx: &mut NodeCtx<'_>) -> anyhow::Result<()> { + let Params { done } = request; + + // Make sure that npm is installed + let npm_installed = ctx.reqv(flowey_lib_common::install_nodejs::Request::EnsureInstalled); + let openvmm_repo_path = ctx.reqv(crate::git_checkout_openvmm_repo::req::GetRepoDir); + + ctx.emit_rust_step(format!("build test-results website"), |ctx| { + npm_installed.claim(ctx); + done.claim(ctx); + let openvmm_repo_path = openvmm_repo_path.claim(ctx); + move |rt| { + let sh = xshell::Shell::new()?; + let mut path = rt.read(openvmm_repo_path); + + // Navigate to the petri/logview_new directory within the + // OpenVMM repo + path.push("petri"); + path.push("logview_new"); + + sh.change_dir(&path); + xshell::cmd!(sh, "npm install").run()?; + xshell::cmd!(sh, "npm run build").run()?; + + Ok(()) + } + }); + + Ok(()) + } +} diff --git a/flowey/flowey_lib_hvlite/src/_jobs/mod.rs b/flowey/flowey_lib_hvlite/src/_jobs/mod.rs index 89f2247ee2..e990666d85 100644 --- a/flowey/flowey_lib_hvlite/src/_jobs/mod.rs +++ b/flowey/flowey_lib_hvlite/src/_jobs/mod.rs @@ -9,6 +9,7 @@ pub mod build_and_publish_openhcl_igvm_from_recipe; pub mod build_and_publish_openvmm_hcl_baseline; pub mod build_and_run_doc_tests; pub mod build_and_run_nextest_unit_tests; +pub mod build_test_results_website; pub mod cfg_common; pub mod cfg_gh_azure_login; pub mod cfg_hvlite_reposource; From 271d570b0a5f43f64aed5788c88eaf22e7c05d00 Mon Sep 17 00:00:00 2001 From: Guramrit Singh Date: Mon, 17 Nov 2025 15:16:17 -0800 Subject: [PATCH 2/3] Moving the existing built site to dist_manual --- .../flowey_lib_hvlite/src/_jobs/build_test_results_website.rs | 3 +++ .../src/_jobs/consolidate_and_publish_gh_pages.rs | 2 +- .../{dist => dist_manual}/assets/index-CNcX4aNW.css | 0 .../logview_new/{dist => dist_manual}/assets/index-DHS4g4M6.js | 0 petri/logview_new/{dist => dist_manual}/index.html | 0 5 files changed, 4 insertions(+), 1 deletion(-) rename petri/logview_new/{dist => dist_manual}/assets/index-CNcX4aNW.css (100%) rename petri/logview_new/{dist => dist_manual}/assets/index-DHS4g4M6.js (100%) rename petri/logview_new/{dist => dist_manual}/index.html (100%) diff --git a/flowey/flowey_lib_hvlite/src/_jobs/build_test_results_website.rs b/flowey/flowey_lib_hvlite/src/_jobs/build_test_results_website.rs index 547be308f7..6282bce993 100644 --- a/flowey/flowey_lib_hvlite/src/_jobs/build_test_results_website.rs +++ b/flowey/flowey_lib_hvlite/src/_jobs/build_test_results_website.rs @@ -43,6 +43,9 @@ impl SimpleFlowNode for Node { path.push("logview_new"); sh.change_dir(&path); + + // Because the project is using vite, the output will go + // directly to the 'dist' folder xshell::cmd!(sh, "npm install").run()?; xshell::cmd!(sh, "npm run build").run()?; diff --git a/flowey/flowey_lib_hvlite/src/_jobs/consolidate_and_publish_gh_pages.rs b/flowey/flowey_lib_hvlite/src/_jobs/consolidate_and_publish_gh_pages.rs index a140b02650..38ff5d509e 100644 --- a/flowey/flowey_lib_hvlite/src/_jobs/consolidate_and_publish_gh_pages.rs +++ b/flowey/flowey_lib_hvlite/src/_jobs/consolidate_and_publish_gh_pages.rs @@ -91,7 +91,7 @@ impl SimpleFlowNode for Node { // New logviewer. flowey_lib_common::_util::copy_dir_all( - repo.join("petri/logview_new/dist"), + repo.join("petri/logview_new/dist_manual"), consolidated_html.join("test-results"), )?; diff --git a/petri/logview_new/dist/assets/index-CNcX4aNW.css b/petri/logview_new/dist_manual/assets/index-CNcX4aNW.css similarity index 100% rename from petri/logview_new/dist/assets/index-CNcX4aNW.css rename to petri/logview_new/dist_manual/assets/index-CNcX4aNW.css diff --git a/petri/logview_new/dist/assets/index-DHS4g4M6.js b/petri/logview_new/dist_manual/assets/index-DHS4g4M6.js similarity index 100% rename from petri/logview_new/dist/assets/index-DHS4g4M6.js rename to petri/logview_new/dist_manual/assets/index-DHS4g4M6.js diff --git a/petri/logview_new/dist/index.html b/petri/logview_new/dist_manual/index.html similarity index 100% rename from petri/logview_new/dist/index.html rename to petri/logview_new/dist_manual/index.html From c9a646fdc0afb59536b40eadcd660d1204b95c0c Mon Sep 17 00:00:00 2001 From: Guramrit Singh Date: Mon, 17 Nov 2025 16:24:47 -0800 Subject: [PATCH 3/3] Added a new endpoint to serve the ci website as well --- .../src/_jobs/consolidate_and_publish_gh_pages.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/flowey/flowey_lib_hvlite/src/_jobs/consolidate_and_publish_gh_pages.rs b/flowey/flowey_lib_hvlite/src/_jobs/consolidate_and_publish_gh_pages.rs index 38ff5d509e..8ee0377587 100644 --- a/flowey/flowey_lib_hvlite/src/_jobs/consolidate_and_publish_gh_pages.rs +++ b/flowey/flowey_lib_hvlite/src/_jobs/consolidate_and_publish_gh_pages.rs @@ -95,6 +95,13 @@ impl SimpleFlowNode for Node { consolidated_html.join("test-results"), )?; + // Testing CI changes to minimize disruptions to petri site + // availability. Will remove this once CI build changes are in. + flowey_lib_common::_util::copy_dir_all( + repo.join("petri/logview_new/dist"), + consolidated_html.join("test-results-ci"), + )?; + // as we do not currently have any form of "landing page", // redirect `openvmm.dev` to `openvmm.dev/guide` fs_err::write(consolidated_html.join("index.html"), REDIRECT)?;