Skip to content

Commit e0b1094

Browse files
jelbournkara
authored andcommitted
chore(e2e): fix consistent timeouts (#6574)
1 parent 9904e56 commit e0b1094

File tree

1 file changed

+39
-7
lines changed

1 file changed

+39
-7
lines changed

tools/gulp/tasks/screenshots.ts

Lines changed: 39 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,46 @@ task('screenshots', () => {
4545
const firebaseApp = connectFirebaseScreenshots();
4646
const database = firebaseApp.database();
4747

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();
4855
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+
});
5688
}
5789
});
5890

0 commit comments

Comments
 (0)