@@ -152,10 +152,10 @@ function getScenarios(args: string[], testSuite: string, isRef: boolean, globalR
152152 ? viewports . filter ( ( v ) => v . label . toLowerCase ( ) == ( s . viewportNames as string ) . trim ( ) . toLowerCase ( ) )
153153 : viewports . filter ( ( v ) => s . viewportNames ?. includes ( v . label ) )
154154 : ! ! data . viewportNames
155- ? typeof data . viewportNames === 'string'
156- ? viewports . filter ( ( v ) => v . label . toLowerCase ( ) == ( data . viewportNames as string ) . trim ( ) . toLowerCase ( ) )
157- : viewports . filter ( ( v ) => data . viewportNames ?. includes ( v . label ) )
158- : undefined ,
155+ ? typeof data . viewportNames === 'string'
156+ ? viewports . filter ( ( v ) => v . label . toLowerCase ( ) == ( data . viewportNames as string ) . trim ( ) . toLowerCase ( ) )
157+ : viewports . filter ( ( v ) => data . viewportNames ?. includes ( v . label ) )
158+ : undefined ,
159159 referenceUrl : ! isRef ? s . url : undefined ,
160160 misMatchThreshold : s . misMatchThreshold ?? data . misMatchThreshold ?? 0.1 ,
161161 postInteractionWait : s . postInteractionWait ?? data . postInteractionWait ?? 1 ,
@@ -183,6 +183,19 @@ function getScenarios(args: string[], testSuite: string, isRef: boolean, globalR
183183}
184184
185185export function getConfigs ( args : string [ ] , backstopDirName : string ) : Config [ ] {
186+ // Check if running on CI environment, such as GitHub Actions or Azure Pipelines
187+ // If so, turn of headless debug window
188+ const isAzurePipelines =
189+ process . env . TF_BUILD === 'True' &&
190+ ! ! process . env . SYSTEM_TEAMFOUNDATIONSERVERURI &&
191+ ! ! process . env . SYSTEM_TEAMFOUNDATIONCOLLECTIONURI &&
192+ ! ! process . env . SYSTEM_TEAMPROJECT &&
193+ ! ! process . env . SYSTEM_COLLECTIONURI ;
194+
195+ const isGitHubActions = process . env . GITHUB_ACTIONS === 'true' ;
196+
197+ const isCI = process . env . CI === 'true' || isAzurePipelines || isGitHubActions ;
198+
186199 return getArgConfigs ( args ) . map ( ( argConfig ) => {
187200 const { testSuite, isRef, globalRequiredLogin } = argConfig ;
188201 const { scenarios, data, viewports } = getScenarios ( args , testSuite , isRef , globalRequiredLogin ) ;
@@ -216,13 +229,13 @@ export function getConfigs(args: string[], backstopDirName: string): Config[] {
216229 ] ,
217230 browser : data ?. browser ?? 'chromium' ,
218231 ignoreHTTPSErrors : data && typeof data ?. ignoreSslErrors === 'boolean' ? data . ignoreSslErrors : true ,
219- headless : data ?. debug ? undefined : 'new' ,
232+ headless : data ?. debug && ! isCI ? undefined : 'new' ,
220233 storageState : data ?. state && fs . existsSync ( getStatePath ( data . state ) ) ? getStatePath ( data . state ) : undefined ,
221234 } ,
222235 asyncCaptureLimit : data ?. asyncCaptureLimit ?? 5 ,
223236 asyncCompareLimit : data ?. asyncCompareLimit ?? 50 ,
224237 debug : false ,
225- debugWindow : data ?. debug ,
238+ debugWindow : data ?. debug && ! isCI ,
226239 } as Config ;
227240
228241 return config ;
0 commit comments