@@ -343,10 +343,13 @@ class TestBuild extends Job {
343
343
}
344
344
345
345
formatAsJson ( ) {
346
- const result = this . failures . map ( item => Object . assign ( {
347
- source : this . sourceURL ,
348
- upstream : this . jobUrl
346
+ const { jobUrl, failures, sourceURL } = this ;
347
+
348
+ const result = failures . map ( item => Object . assign ( {
349
+ source : sourceURL ,
350
+ upstream : jobUrl
349
351
} , item ) ) ;
352
+
350
353
return JSON . parse ( JSON . stringify ( result ) ) ;
351
354
}
352
355
}
@@ -799,28 +802,18 @@ class CITGMBuild extends TestBuild {
799
802
return { result } ;
800
803
}
801
804
802
- formatAsJson ( ) {
803
- const { results } = this ;
804
-
805
- const result = results . all . map ( item => Object . assign ( {
806
- source : this . sourceURL ,
807
- upstream : this . jobUrl
808
- } , item ) ) ;
809
-
810
- return JSON . parse ( JSON . stringify ( result ) ) ;
811
- }
812
-
813
805
parseResults ( data ) {
814
- const results = { all : [ ] , failures : [ ] } ;
806
+ const results = { all : { } , failures : { } } ;
815
807
816
808
data . forEach ( platform => {
817
809
const cases = flatten ( platform . result . suites [ 0 ] . cases ) ;
818
- const nodeName = getNodeName ( platform . child . url ) ;
810
+ const url = platform . child . url ;
811
+ const nodeName = getNodeName ( url ) ;
819
812
820
- results . all . push ( { [ nodeName ] : cases } ) ;
813
+ results . all [ nodeName ] = { url , modules : cases } ;
821
814
822
815
const failedModules = cases . filter ( c => c . status === 'FAILED' ) ;
823
- results . failures . push ( { [ nodeName ] : failedModules } ) ;
816
+ results . failures [ nodeName ] = { url , modules : failedModules } ;
824
817
} ) ;
825
818
826
819
return results ;
@@ -831,14 +824,45 @@ class CITGMBuild extends TestBuild {
831
824
832
825
cli . separator ( 'Failures' ) ;
833
826
const output = { } ;
834
- for ( const failure of results . failures ) {
835
- const platform = Object . keys ( failure ) [ 0 ] ;
836
- const modules = failure [ platform ] . map ( f => f . name ) ;
837
- output [ platform ] = modules ;
827
+ for ( const platform in results . failures ) {
828
+ const modules = results . failures [ platform ] . modules ;
829
+ const failures = modules . map ( f => f . name ) ;
830
+
831
+ output [ platform ] = failures ;
838
832
}
839
833
840
834
console . table ( output ) ;
841
835
}
836
+
837
+ formatAsJson ( ) {
838
+ const { jobUrl, results, sourceURL } = this ;
839
+
840
+ const result = {
841
+ source : sourceURL ,
842
+ upstream : jobUrl ,
843
+ ...results . failures
844
+ } ;
845
+
846
+ return JSON . parse ( JSON . stringify ( result ) ) ;
847
+ }
848
+
849
+ formatAsMarkdown ( ) {
850
+ const { jobUrl, result, results } = this ;
851
+
852
+ if ( result === SUCCESS ) {
853
+ return `Job ${ jobUrl } is green.` ;
854
+ }
855
+
856
+ let output = `Failures in job ${ jobUrl } \n\n` ;
857
+ for ( const failure in results . failures ) {
858
+ const data = results . failures [ failure ] ;
859
+ output += `### [${ failure } ](${ data . url } )\n\n` ;
860
+
861
+ const failures = data . modules . map ( f => f . name ) ;
862
+ output += `${ failures . join ( '\n' ) } \n\n` ;
863
+ }
864
+ return output ;
865
+ }
842
866
}
843
867
844
868
function filterBuild ( builds , type ) {
0 commit comments