@@ -32,6 +32,7 @@ const COMMIT_TREE =
3232const FANNED_TREE = `result,url,number,subBuilds[phaseName,${ BUILD_FIELDS } ]` ;
3333// hudson.matrix.MatrixBuild
3434const BUILD_TREE = 'result,runs[url,number,result]' ;
35+ const LINTER_TREE = 'result,url,number' ;
3536
3637function 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+
400431class NormalBuild extends Job {
401432 constructor ( cli , request , jobName , id ) {
402433 const path = `job/${ jobName } /${ id } /` ;
@@ -492,6 +523,10 @@ const FAILURE_PATTERNS = [{
492523 pattern : / E R R O R : .+ / g,
493524 filter : pickReason ( - 1 , 0 , 5 ) ,
494525 name : 'build failure'
526+ } , {
527+ pattern : / E r r o r : .+ / g,
528+ filter : pickReason ( 0 , 0 , 5 ) ,
529+ name : 'tool error'
495530} , {
496531 pattern : / f a t a l : .+ / g,
497532 filter : mergeReasons ,
0 commit comments