@@ -45,14 +45,46 @@ task('screenshots', () => {
45
45
const firebaseApp = connectFirebaseScreenshots ( ) ;
46
46
const database = firebaseApp . database ( ) ;
47
47
48
+ // If this task hasn't completed in 8 minutes, close the firebase connection.
49
+ const timeoutId = setTimeout ( ( ) => {
50
+ console . error ( 'Screenshot tests did not finish in 8 minutes, closing Firebase connection.' ) ;
51
+ return firebaseApp . delete ( ) ;
52
+ } , 60 * 1000 * 8 ) ;
53
+
54
+ let lastActionTime = Date . now ( ) ;
48
55
return uploadTravisJobInfo ( database , prNumber )
49
- . then ( ( ) => downloadGoldScreenshotFiles ( database ) )
50
- . then ( ( ) => compareScreenshotFiles ( database , prNumber ) )
51
- . then ( passedAll => setPullRequestResult ( database , prNumber , passedAll ) )
52
- . then ( ( ) => uploadScreenshotsData ( database , 'diff' , prNumber ) )
53
- . then ( ( ) => uploadScreenshotsData ( database , 'test' , prNumber ) )
54
- . catch ( ( err : any ) => console . error ( err ) )
55
- . then ( ( ) => firebaseApp . delete ( ) ) ;
56
+ . then ( ( ) => {
57
+ console . log ( ` Downloading screenshot golds from Firebase...` ) ;
58
+ lastActionTime = Date . now ( ) ;
59
+ return downloadGoldScreenshotFiles ( database ) ;
60
+ } )
61
+ . then ( ( ) => {
62
+ console . log ( ` Downloading golds done (took ${ Date . now ( ) - lastActionTime } ms)` ) ;
63
+ console . log ( ` Comparing screenshots golds to test result screenshots...` ) ;
64
+ lastActionTime = Date . now ( ) ;
65
+ return compareScreenshotFiles ( database , prNumber ) ;
66
+ } )
67
+ . then ( passedAll => {
68
+ console . log ( ` Comparison done (took ${ Date . now ( ) - lastActionTime } ms)` ) ;
69
+ console . log ( ` Uploading screenshot diff results to Firebase and GitHub...` ) ;
70
+ lastActionTime = Date . now ( ) ;
71
+ return Promise . all ( [
72
+ setPullRequestResult ( database , prNumber , passedAll ) ,
73
+ uploadScreenshotsData ( database , 'diff' , prNumber ) ,
74
+ uploadScreenshotsData ( database , 'test' , prNumber ) ,
75
+ ] ) ;
76
+ } )
77
+ . then ( ( ) => {
78
+ console . log ( ` Uploading results done (took ${ Date . now ( ) - lastActionTime } ms)` ) ;
79
+ firebaseApp . delete ( ) ;
80
+ clearTimeout ( timeoutId ) ;
81
+ } )
82
+ . catch ( ( err : any ) => {
83
+ console . error ( ` Screenshot tests encountered an error!` ) ;
84
+ console . error ( err ) ;
85
+ firebaseApp . delete ( ) ;
86
+ clearTimeout ( timeoutId ) ;
87
+ } ) ;
56
88
}
57
89
} ) ;
58
90
0 commit comments