Skip to content

Commit 4754fcf

Browse files
committed
Add artifact size summary to PR comments
1 parent f174358 commit 4754fcf

File tree

3 files changed

+22
-0
lines changed

3 files changed

+22
-0
lines changed

Cargo.lock

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

site/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ prometheus = "0.13"
4747
uuid = { version = "1.3.0", features = ["v4"] }
4848
tera = "1.18"
4949
rust-embed = { version = "6.6.0", features = ["include-exclude", "interpolate-folder-path"] }
50+
humansize = "2"
5051

5152
[target.'cfg(unix)'.dependencies]
5253
jemallocator = "0.5"

site/src/github/comparison_summary.rs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ use crate::load::SiteCtxt;
77
use database::{ArtifactId, QueuedCommit};
88

99
use crate::github::{COMMENT_MARK_ROLLUP, COMMENT_MARK_TEMPORARY, RUST_REPO_GITHUB_API_URL};
10+
use humansize::BINARY;
1011
use std::collections::HashSet;
1112
use std::fmt::Write;
1213

@@ -228,6 +229,7 @@ async fn summarize_run(
228229
}
229230

230231
let bootstrap = summarize_bootstrap(&inst_comparison);
232+
let artifact_size = summarize_artifact_size(&inst_comparison);
231233

232234
let metrics = vec![
233235
(
@@ -267,10 +269,28 @@ async fn summarize_run(
267269
}
268270

269271
write!(&mut message, "\n{bootstrap}").unwrap();
272+
write!(&mut message, "\n{artifact_size}").unwrap();
270273

271274
Ok(message)
272275
}
273276

277+
fn summarize_artifact_size(comparison: &ArtifactComparison) -> String {
278+
let size_prev = comparison.a.component_sizes.values().sum::<u64>();
279+
let size_current = comparison.b.component_sizes.values().sum::<u64>();
280+
if size_prev == 0 || size_current == 0 {
281+
return "**Artifact size**: missing data".to_string();
282+
}
283+
284+
let change = (size_current as f64 / size_prev as f64) - 1.0;
285+
let change = change * 100.0;
286+
287+
format!(
288+
"**Artifact size**: {} -> {} ({change:.2}%)",
289+
humansize::format_size(size_prev, BINARY),
290+
humansize::format_size(size_current, BINARY)
291+
)
292+
}
293+
274294
fn summarize_bootstrap(comparison: &ArtifactComparison) -> String {
275295
let prev_s = comparison.a.bootstrap_total as f64 / 1e9;
276296
let current_s = comparison.b.bootstrap_total as f64 / 1e9;

0 commit comments

Comments
 (0)