Skip to content

Commit 77da02c

Browse files
committed
feat: add --skip-more-than to ncu-ci to skip real test failures
1 parent 8e03d55 commit 77da02c

File tree

3 files changed

+21
-6
lines changed

3 files changed

+21
-6
lines changed

bin/ncu-ci.js

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,11 @@ const args = yargs(hideBin(process.argv))
215215
default: false,
216216
type: 'boolean'
217217
})
218+
.option('skip-more-than', {
219+
describe: 'Skip jobs that fail more than <limit> builds, when --stat is true, default to 10.',
220+
type: 'number',
221+
default: Infinity
222+
})
218223
.option('nobuild', {
219224
describe: 'If running cigtm, whether or not jobid is citgm-nobuild.',
220225
type: 'boolean',
@@ -325,15 +330,19 @@ class CICommand {
325330
cli.separator('');
326331

327332
let build;
333+
let { skipMoreThan } = argv;
334+
if (argv.stats && argv.skipMoreThan === Infinity) {
335+
skipMoreThan = 10;
336+
}
328337
switch (job.type) {
329338
case 'health':
330339
build = new HealthBuild(cli, request, job.ciType, job.builds);
331340
break;
332341
case PR:
333-
build = new PRBuild(cli, request, job.jobid);
342+
build = new PRBuild(cli, request, job.jobid, skipMoreThan);
334343
break;
335344
case COMMIT:
336-
build = new CommitBuild(cli, request, job.jobid);
345+
build = new CommitBuild(cli, request, job.jobid, skipMoreThan);
337346
break;
338347
case CITGM:
339348
case CITGM_NOBUILD:

lib/ci/build-types/commit_build.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,11 @@ const {
2020
} = CIFailureParser;
2121

2222
export class CommitBuild extends TestBuild {
23-
constructor(cli, request, id) {
23+
constructor(cli, request, id, skipMoreThan) {
2424
const path = `job/node-test-commit/${id}/`;
2525
const tree = COMMIT_TREE;
2626
super(cli, request, path, tree);
27+
this.skipMoreThan = skipMoreThan;
2728
}
2829

2930
getBuilds({ result, subBuilds }) {
@@ -89,6 +90,11 @@ export class CommitBuild extends TestBuild {
8990
return { result, builds, failures };
9091
}
9192

93+
if (builds.failed.length > this.skipMoreThan) {
94+
cli.log(`Failed ${builds.failed.length} builds (> ${this.skipMoreThan}), skipping`);
95+
return { result, builds, failures: [] };
96+
}
97+
9298
cli.startSpinner(`Querying failures of ${path}`);
9399
const promises = builds.failed.map(({ jobName, buildNumber, url }) => {
94100
if (jobName.includes('fanned')) {

lib/ci/build-types/pr_build.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ const {
1515
} = CIFailureParser;
1616

1717
export class PRBuild extends TestBuild {
18-
constructor(cli, request, id) {
18+
constructor(cli, request, id, skipMoreThan) {
1919
const path = `job/node-test-pull-request/${id}/`;
2020
const tree = PR_TREE;
2121
super(cli, request, path, tree);
22-
22+
this.skipMoreThan = skipMoreThan;
2323
this.commitBuild = null;
2424
}
2525

@@ -78,7 +78,7 @@ export class PRBuild extends TestBuild {
7878
result, subBuilds: allBuilds, changeSet, actions, timestamp
7979
};
8080
const commitBuildId = commitBuild.buildNumber;
81-
this.commitBuild = new CommitBuild(cli, request, commitBuildId);
81+
this.commitBuild = new CommitBuild(cli, request, commitBuildId, this.skipMoreThan);
8282
const { builds, failures } = await this.commitBuild.getResults(buildData);
8383

8484
// Set up aliases for display

0 commit comments

Comments
 (0)