@@ -3,38 +3,37 @@ const fs = require('fs');
3
3
4
4
const PORT = 8041 ;
5
5
const PR_NUMBER = process . env . GITHUB_PR_NUMBER ;
6
- const environments = [
6
+ const OUTPUT_DIR = './lighthouse-reports' ;
7
+ const ENVIRONMENTS = [
7
8
{
8
9
title : 'pr' ,
9
- url : `https://frontdoor-test-docs.nginx.com/previews/docs/${ PR_NUMBER } /` ,
10
- } ,
11
- {
12
- title : 'main' ,
13
- url : 'https://docs.nginx.com/' ,
10
+ url : `https://frontdoor-test-docs.nginx.com/previews/nginx-hugo-theme/${ PR_NUMBER } /` ,
14
11
} ,
15
12
] ;
16
- const OUTPUT_DIR = './lighthouse-reports' ;
17
13
18
14
const signIntoFrontDoor = async ( browser , env ) => {
19
15
const page = await browser . newPage ( ) ;
20
- await page . authenticate ( {
21
- username : process . env . FRONT_DOOR_USERNAME ,
22
- password : process . env . FRONT_DOOR_PASSWORD ,
23
- } ) ;
24
-
25
- await page . goto ( env [ 'url' ] ) ;
26
- await page . waitForSelector ( '.grid-container' ) ;
27
- console . log ( 'Logged in...' ) ;
28
- await page . close ( ) ;
16
+ try {
17
+ await page . authenticate ( {
18
+ username : process . env . FRONT_DOOR_USERNAME ,
19
+ password : process . env . FRONT_DOOR_PASSWORD ,
20
+ } ) ;
21
+ await page . goto ( env [ 'url' ] ) ;
22
+ await page . waitForSelector ( '.navbar' ) ;
23
+ console . log ( 'Logged in...' ) ;
24
+ await page . close ( ) ;
25
+ } catch {
26
+ console . log ( 'Unable to log in...' ) ;
27
+ }
29
28
} ;
30
29
31
- const runLighthouse = async ( env ) => {
30
+ const generateLighthouseReport = async ( env ) => {
32
31
const OUTPUT_FILE = `${ env [ 'title' ] } -report.json` ;
33
-
34
32
const lighthouse = ( await import ( 'lighthouse' ) ) . default ;
35
33
console . log ( `Running Lighthouse for ${ env [ 'title' ] } ...` ) ;
36
34
const result = await lighthouse ( env [ 'url' ] , { port : PORT } ) ;
37
35
fs . writeFileSync ( `${ OUTPUT_DIR } /${ OUTPUT_FILE } ` , result . report ) ;
36
+ console . log ( `Generated report for ${ env [ 'title' ] } ...` ) ;
38
37
} ;
39
38
40
39
( async ( ) => {
@@ -46,12 +45,12 @@ const runLighthouse = async (env) => {
46
45
fs . mkdirSync ( OUTPUT_DIR ) ;
47
46
}
48
47
49
- for ( const env of environments ) {
48
+ for ( const env of ENVIRONMENTS ) {
50
49
if ( env [ 'title' ] === 'pr' ) {
51
50
await signIntoFrontDoor ( browser , env ) ;
52
51
}
53
- await runLighthouse ( env ) ;
52
+ await generateLighthouseReport ( env ) ;
54
53
}
55
54
56
- await browser . close ( ) ;
55
+ browser . close ( ) ;
57
56
} ) ( ) ;
0 commit comments