about summary refs log tree commit diff
path: root/src/build_helper
diff options
context:
space:
mode:
authorJakub Beránek <berykubik@gmail.com>2025-03-02 18:23:11 +0100
committerJakub Beránek <berykubik@gmail.com>2025-03-04 12:31:53 +0100
commit7b53ac7ee67fbd62cadd883c860a6df263b6a481 (patch)
treeefe4dc1cd0911b63ee958186103c925de9fcdc34 /src/build_helper
parentead58ea6f8bf860459fe5351a83717a8e591b0af (diff)
downloadrust-7b53ac7ee67fbd62cadd883c860a6df263b6a481.tar.gz
rust-7b53ac7ee67fbd62cadd883c860a6df263b6a481.zip
Record bootstrap step durations into GitHub summary in citool
Diffstat (limited to 'src/build_helper')
-rw-r--r--src/build_helper/src/metrics.rs10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/build_helper/src/metrics.rs b/src/build_helper/src/metrics.rs
index 4b585c15182..eb306550fc4 100644
--- a/src/build_helper/src/metrics.rs
+++ b/src/build_helper/src/metrics.rs
@@ -175,8 +175,14 @@ pub fn format_build_steps(root: &BuildStep) -> String {
 
     let mut output = String::new();
     for (level, step) in substeps {
-        let label = format!("{}{}", ".".repeat(level as usize), step.r#type);
-        writeln!(output, "{label:<65}{:>8.2}s", step.duration.as_secs_f64()).unwrap();
+        let label = format!(
+            "{}{}",
+            ".".repeat(level as usize),
+            // Bootstrap steps can be generic and thus contain angle brackets (<...>).
+            // However, Markdown interprets these as HTML, so we need to escap ethem.
+            step.r#type.replace('<', "&lt;").replace('>', "&gt;")
+        );
+        writeln!(output, "{label:.<65}{:>8.2}s", step.duration.as_secs_f64()).unwrap();
     }
     output
 }