Skip to content

Commit d86b1c4

Browse files
committed
[Danger] Split the reports into sections based on their package
1 parent 457295a commit d86b1c4

File tree

2 files changed

+74
-43
lines changed

2 files changed

+74
-43
lines changed

dangerfile.js

Lines changed: 38 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,7 @@
1212
const {markdown} = require('danger');
1313
const fetch = require('node-fetch');
1414

15-
const {
16-
resultsHeaders,
17-
generateResultsArray,
18-
} = require('./scripts/rollup/stats');
15+
const {generateResultsArray} = require('./scripts/rollup/stats');
1916
const currentBuildResults = require('./scripts/rollup/results.json');
2017

2118
/**
@@ -42,11 +39,43 @@ fetch('http://react.zpao.com/builds/master/latest/results.json').then(
4239
previousBuildResults
4340
);
4441

45-
markdown('### Bundle Changes:\n');
46-
const percentToWarrentShowing = 1
47-
const onlyResultsToShow = results.filter(f => Math.abs(f[3]) > percentToWarrentShowing || Math.abs(f[7]));
48-
const groupBy
42+
const percentToWarrentShowing = 1;
43+
const onlyBundlesToShow = results
44+
.filter(
45+
r =>
46+
Math.abs(r.prevFileSizeChange) > percentToWarrentShowing ||
47+
Math.abs(r.prevGzipSizeChange) > percentToWarrentShowing
48+
)
49+
.map(r => r.packageName);
4950

50-
markdown(generateMDTable(resultsHeaders, results));
51+
if (onlyBundlesToShow) {
52+
markdown('## Bundle Changes:\n');
53+
for (var name of new Set(onlyBundlesToShow)) { // eslint-disable-line no-var
54+
markdown(`## ${name}`);
55+
56+
const thisBundleResults = results.filter(r => r.packageName === name);
57+
const mdHeaders = [
58+
'Filesize Diff',
59+
'Gzip Diff',
60+
'File',
61+
'ENV',
62+
'Prev Size',
63+
'Current Size',
64+
'Prev Gzip',
65+
'Current Gzip',
66+
];
67+
const mdRows = thisBundleResults.map(r => [
68+
r.prevFileSizeChange,
69+
r.prevGzipSizeChange,
70+
r.filename,
71+
r.bundleType,
72+
r.prevSize,
73+
r.prevFileSize,
74+
r.prevGzip,
75+
r.prevGzipSize,
76+
]);
77+
markdown(generateMDTable(mdHeaders, mdRows));
78+
}
79+
}
5180
}
5281
);

scripts/rollup/stats.js

Lines changed: 36 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ function saveResults() {
2020
);
2121
}
2222

23-
2423
function percentChange(prev, current) {
2524
return Math.floor((current - prev) / prev * 100);
2625
}
@@ -44,49 +43,52 @@ const resultsHeaders = [
4443
];
4544

4645
function generateResultsArray(current, prevResults) {
47-
currentBuildResults.bundleSizes.forEach(index => {
48-
const result = currentBuildResults.bundleSizes[index];
49-
const prev = prevBuildResults.bundleSizes.filter(
50-
res => res.filename === result.filename
51-
)[0];
52-
if (result === prev) {
53-
// We didn't rebuild this bundle.
54-
return;
55-
}
46+
return current.bundleSizes
47+
.map(result => {
48+
const prev = prevResults.bundleSizes.filter(
49+
res => res.filename === result.filename
50+
)[0];
51+
if (result === prev) {
52+
// We didn't rebuild this bundle.
53+
return;
54+
}
5655

57-
const size = result.size;
58-
const gzip = result.gzip;
59-
let prevSize = prev ? prev.size : 0;
60-
let prevGzip = prev ? prev.gzip : 0;
56+
const size = result.size;
57+
const gzip = result.gzip;
58+
let prevSize = prev ? prev.size : 0;
59+
let prevGzip = prev ? prev.gzip : 0;
6160

62-
return [
63-
`${result.filename} (${result.bundleType}`,
64-
filesize(prevSize),
65-
filesize(size),
66-
percentChange(prevSize, size),
67-
filesize(prevGzip),
68-
filesize(gzip),
69-
percentChange(prevGzip, gzip),
70-
];
71-
// Strip any nulls
72-
}).filter(f => f);
61+
return {
62+
filename: result.filename,
63+
bundleType: result.bundleType,
64+
packageName: result.packageName,
65+
prevSize: filesize(prevSize),
66+
prevFileSize: filesize(size),
67+
prevFileSizeChange: percentChange(prevSize, size),
68+
prevGzip: filesize(prevGzip),
69+
prevGzipSize: filesize(gzip),
70+
prevGzipSizeChange: percentChange(prevGzip, gzip),
71+
};
72+
// Strip any nulls
73+
})
74+
.filter(f => f);
7375
}
7476

7577
function printResults() {
7678
const table = new Table({
7779
head: resultsHeaders.map(chalk.gray.yellow),
7880
});
7981

80-
const results = generateResultsArray(currentBuildResults, prevBuildResults)
81-
results.forEach(row => {
82+
const results = generateResultsArray(currentBuildResults, prevBuildResults);
83+
results.forEach(result => {
8284
table.push([
83-
chalk.white.bold(row[0]),
84-
chalk.gray.bold(row[1]),
85-
chalk.white.bold(row[2]),
86-
percentChangeString(row[3]),
87-
chalk.gray.bold(row[4]),
88-
chalk.white.bold(row[5]),
89-
percentChangeString(row[6]),
85+
chalk.white.bold(`${result.filename} (${result.bundleType})`),
86+
chalk.gray.bold(result.prevSize),
87+
chalk.white.bold(result.prevFileSize),
88+
percentChangeString(result.prevFileSizeChange),
89+
chalk.gray.bold(result.prevGzip),
90+
chalk.white.bold(result.prevGzipSize),
91+
percentChangeString(result.prevGzipSizeChange),
9092
]);
9193
});
9294

0 commit comments

Comments
 (0)