Skip to content

Commit 843b259

Browse files
committed
Fix filter error and simplify logic
1 parent 1fc9c06 commit 843b259

File tree

4 files changed

+62
-58
lines changed

4 files changed

+62
-58
lines changed

lib/ci/build-types/citgm_build.js

+5-1
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ class CITGMBuild extends TestBuild {
6868
parseResults(data) {
6969
const { childReports, totalCount, skipCount, failCount } = data;
7070
const results = { all: {}, failures: {}, statistics: {} };
71+
const failureStatuses = ['FAILED', 'REGRESSION'];
7172

7273
const passCount = totalCount - failCount - skipCount;
7374
results.statistics.passed = passCount;
@@ -82,7 +83,10 @@ class CITGMBuild extends TestBuild {
8283

8384
results.all[nodeName] = { url, modules: cases };
8485

85-
const failedModules = cases.filter(c => c.status === 'FAILED');
86+
const failedModules = cases.filter(c => {
87+
return failureStatuses.includes(c.status);
88+
});
89+
8690
results.failures[nodeName] = { url, modules: failedModules };
8791
});
8892

lib/ci/build-types/citgm_comparison_build.js

+26-11
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,25 @@ class CITGMComparisonBuild {
3131
const { failures: comparisonFailures } = comparisonBuild.results;
3232

3333
const failures = {};
34-
for (const platform in baseFailures) {
35-
const { modules: baseModules } = baseFailures[platform];
36-
const { modules: comparisonModules } = comparisonFailures[platform];
34+
for (const platform in comparisonFailures) {
35+
// Account for no failure on this platform, or different platform.
36+
if (!Object.prototype.hasOwnProperty.call(baseFailures, platform)) {
37+
failures[platform] = [];
38+
continue;
39+
}
3740

38-
const newFailures = comparisonModules.filter(f => {
39-
return !baseModules.includes(f.name);
41+
const baseModules = baseFailures[platform].modules.map(f => {
42+
return f.name;
43+
});
44+
const comparisonModules = comparisonFailures[platform].modules.map(f => {
45+
return f.name;
4046
});
4147

48+
// Filter for every failed module in the comparison job module set
49+
// that is not present in the failure set for the base job module set.
50+
const newFailures = comparisonModules.filter(f => {
51+
return !baseModules.includes(f);
52+
});
4253
if (newFailures.length !== 0) {
4354
result = statusType.FAILURE;
4455
}
@@ -65,26 +76,30 @@ class CITGMComparisonBuild {
6576
displayBuilds() {
6677
const { builds, cli, results, result } = this;
6778

68-
const baseID = builds.baseBuild.id;
69-
const comparisonID = builds.comparisonBuild.id;
79+
const bID = builds.baseBuild.id;
80+
const cID = builds.comparisonBuild.id;
7081

7182
cli.separator('Results');
7283

7384
if (result === statusType.SUCCESS) {
7485
cli.log('\n\n');
75-
const str = `No new failures in ${baseID} compared to ${comparisonID}`;
86+
const str = `No new failures in ${bID} compared to ${cID}`;
7687
cli.log(`${statusType.SUCCESS}: ${str}\n\n`);
7788
return;
7889
}
7990

8091
const output = {};
92+
let totalFailures = 0;
8193
for (const platform in results.failures) {
82-
const modules = results.failures[platform];
83-
const failures = modules.map(f => f.name);
94+
const failures = results.failures[platform];
95+
totalFailures += failures.length;
8496

8597
output[platform] = failures;
8698
}
8799

100+
cli.log('\n\n');
101+
const str = `${totalFailures} failures in ${bID} not present in ${cID}`;
102+
cli.log(`${statusType.FAILURE}: ${str}\n\n`);
88103
console.table(output);
89104
}
90105

@@ -128,7 +143,7 @@ class CITGMComparisonBuild {
128143
const data = results.failures[failure];
129144
output += `### ${failure}\n\n`;
130145

131-
const failures = data.map(f => `* ${f.name}`);
146+
const failures = data.map(f => `* ${f}`);
132147
output += failures.length ? `${failures.join('\n')}\n\n` : 'None.\n\n';
133148
}
134149
return output;

test/fixtures/jenkins/citgm-compare/expected.json

+14-35
Original file line numberDiff line numberDiff line change
@@ -7,43 +7,22 @@
77
"source": "https://github.com/nodejs/node/pull/33811/",
88
"upstream": "https://ci.nodejs.org/job/citgm-smoker/2392/"
99
},
10-
"debian9-64": [
11-
{
12-
"name": "express-session-v1.17.1",
13-
"status": "FAILED"
14-
},
15-
{
16-
"name": "yeoman-generator-v4.10.1",
17-
"status": "FAILED"
18-
}
19-
],
2010
"centos7-ppcle": [
21-
{
22-
"name": "ember-cli-v3.18.0",
23-
"status": "FAILED"
24-
},
25-
{
26-
"name": "multer-v1.4.2",
27-
"status": "FAILED"
28-
},
29-
{
30-
"name": "torrent-stream-v1.2.0",
31-
"status": "FAILED"
32-
}
33-
],
34-
"rhel7-s390x": [
35-
{
36-
"name": "torrent-stream-v1.2.0",
37-
"status": "FAILED"
38-
}
11+
"multer-v1.4.2"
3912
],
4013
"fedora-latest-x64": [
41-
{
42-
"name": "spawn-wrap-v2.0.0",
43-
"status": "FAILED"
44-
}
14+
"spawn-wrap-v2.0.0"
4515
],
46-
"ubuntu1804-64": [],
4716
"fedora-last-latest-x64": [],
48-
"ubuntu1604-64": []
49-
}
17+
"debian9-64": [
18+
"express-session-v1.17.1",
19+
"yeoman-generator-v4.10.1"
20+
],
21+
"osx1014": [],
22+
"rhel7-s390x": [
23+
"torrent-stream-v1.2.0"
24+
],
25+
"aix71-ppc64": [],
26+
"ubuntu1604-64": [],
27+
"ubuntu1804-64": []
28+
}

test/fixtures/jenkins/citgm-compare/expected.md

+17-11
Original file line numberDiff line numberDiff line change
@@ -2,34 +2,40 @@
22

33
## New Failures in job [#2390](https://ci.nodejs.org/job/citgm-smoker/2390/)
44

5+
### centos7-ppcle
6+
7+
* multer-v1.4.2
8+
9+
### fedora-latest-x64
10+
11+
* spawn-wrap-v2.0.0
12+
13+
### fedora-last-latest-x64
14+
15+
None.
16+
517
### debian9-64
618

719
* express-session-v1.17.1
820
* yeoman-generator-v4.10.1
921

10-
### centos7-ppcle
22+
### osx1014
1123

12-
* ember-cli-v3.18.0
13-
* multer-v1.4.2
14-
* torrent-stream-v1.2.0
24+
None.
1525

1626
### rhel7-s390x
1727

1828
* torrent-stream-v1.2.0
1929

20-
### fedora-latest-x64
21-
22-
* spawn-wrap-v2.0.0
23-
24-
### ubuntu1804-64
30+
### aix71-ppc64
2531

2632
None.
2733

28-
### fedora-last-latest-x64
34+
### ubuntu1604-64
2935

3036
None.
3137

32-
### ubuntu1604-64
38+
### ubuntu1804-64
3339

3440
None.
3541

0 commit comments

Comments
 (0)