From d1b7b43dce1b7a343d9e02f2bd870f8575828793 Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Thu, 25 Jun 2026 05:00:37 +0400 Subject: feat(stage0): record artifact provenance metadata --- apps/fparkan-vulkan-smoke/src/main.rs | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'apps/fparkan-vulkan-smoke') diff --git a/apps/fparkan-vulkan-smoke/src/main.rs b/apps/fparkan-vulkan-smoke/src/main.rs index bd7200f..13451a3 100644 --- a/apps/fparkan-vulkan-smoke/src/main.rs +++ b/apps/fparkan-vulkan-smoke/src/main.rs @@ -353,6 +353,8 @@ fn render_smoke_report_json( let fields = vec![ ("schema_version", json_string(SCHEMA_VERSION)), ("commit_sha", json_string(¤t_git_commit_sha())), + ("git_dirty", bool_json(current_git_dirty())), + ("runner_identity", json_string(&measured_runner_identity())), ("rust_toolchain", json_string(¤t_rustc_release())), ("target_triple", json_string(¤t_rustc_host_triple())), ("platform", json_string(actual_platform())), @@ -460,6 +462,16 @@ fn current_git_commit_sha() -> String { .unwrap_or_else(|| "unknown".to_string()) } +fn current_git_dirty() -> bool { + Command::new("git") + .args(["status", "--short"]) + .output() + .ok() + .filter(|output| output.status.success()) + .and_then(|output| String::from_utf8(output.stdout).ok()) + .is_some_and(|output| !output.trim().is_empty()) +} + fn current_rustc_release() -> String { Command::new("rustc") .arg("-Vv") @@ -475,6 +487,21 @@ fn current_rustc_release() -> String { .unwrap_or_else(|| "unknown".to_string()) } +fn measured_runner_identity() -> String { + if std::env::var_os("GITHUB_ACTIONS").is_some() { + let run_id = std::env::var("GITHUB_RUN_ID").unwrap_or_else(|_| "unknown-run".to_string()); + let job = std::env::var("GITHUB_JOB").unwrap_or_else(|_| "unknown-job".to_string()); + format!("github-actions/{run_id}/{job}") + } else if std::env::var_os("CI").is_some() { + let job = std::env::var("CI_JOB_NAME") + .or_else(|_| std::env::var("BUILD_ID")) + .unwrap_or_else(|_| "generic-ci".to_string()); + format!("ci/{job}") + } else { + format!("local/{}", std::env::consts::OS) + } +} + fn current_rustc_host_triple() -> String { Command::new("rustc") .arg("-Vv") -- cgit v1.2.3