Skip to content

Commit 18fcbe7

Browse files
committed
catch linter errors
1 parent ae16e10 commit 18fcbe7

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

components/jenkins.js

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ const COMMIT_TREE =
3232
const FANNED_TREE = `result,url,number,subBuilds[phaseName,${BUILD_FIELDS}]`;
3333
// hudson.matrix.MatrixBuild
3434
const BUILD_TREE = 'result,runs[url,number,result]';
35+
const LINTER_TREE = 'result,url,number';
3536

3637
function getPath(url) {
3738
return url.replace(`https://${DOMAIN}/`, '').replace('api/json', '');
@@ -208,6 +209,8 @@ class CommitBuild extends Job {
208209
const promises = builds.failed.map(({jobName, buildNumber}) => {
209210
if (jobName.includes('fanned')) {
210211
return new FannedBuild(cli, request, jobName, buildNumber).getResults();
212+
} else if (jobName.includes('linter')) {
213+
return new LinterBuild(cli, request, jobName, buildNumber).getResults();
211214
}
212215
return new NormalBuild(cli, request, jobName, buildNumber).getResults();
213216
});
@@ -397,6 +400,34 @@ class FannedBuild extends Job {
397400
}
398401
}
399402

403+
class LinterBuild extends Job {
404+
constructor(cli, request, jobName, id) {
405+
const path = `job/${jobName}/${id}/`;
406+
const tree = LINTER_TREE;
407+
super(cli, request, path, tree);
408+
409+
this.failures = [];
410+
}
411+
412+
async getResults() {
413+
const data = await this.getConsoleText();
414+
for (const pattern of FAILURE_PATTERNS) {
415+
const results = data.match(pattern.pattern);
416+
if (results) {
417+
const failures = pattern.filter.call(this, results, data);
418+
this.failures = failures;
419+
return failures;
420+
}
421+
}
422+
423+
this.failures = [{
424+
url: this.jobUrl,
425+
reason: 'Unknown'
426+
}];
427+
return this.failures;
428+
}
429+
}
430+
400431
class NormalBuild extends Job {
401432
constructor(cli, request, jobName, id) {
402433
const path = `job/${jobName}/${id}/`;
@@ -492,6 +523,10 @@ const FAILURE_PATTERNS = [{
492523
pattern: /ERROR: .+/g,
493524
filter: pickReason(-1, 0, 5),
494525
name: 'build failure'
526+
}, {
527+
pattern: /Error: .+/g,
528+
filter: pickReason(0, 0, 5),
529+
name: 'tool error'
495530
}, {
496531
pattern: /fatal: .+/g,
497532
filter: mergeReasons,

0 commit comments

Comments
 (0)