@@ -55,7 +55,6 @@ const httpsScreenshotsKeepAliveAgent = new https.Agent({
5555} ) ;
5656
5757const supportFileCleanup = ( ) => {
58- return ;
5958 Object . keys ( supportFileContentMap ) . forEach ( file => {
6059 try {
6160 fs . writeFileSync ( file , supportFileContentMap [ file ] , { encoding : 'utf-8' } ) ;
@@ -163,244 +162,6 @@ exports.getTestEnv = () => {
163162 }
164163}
165164
166- exports . getFileSeparatorData = ( ) => {
167- return / ^ w i n / . test ( process . platform ) ? "\\" : "/" ;
168- }
169-
170- exports . findGitConfig = ( filePath ) => {
171- const fileSeparator = exports . getFileSeparatorData ( ) ;
172- if ( filePath == null || filePath == '' || filePath == fileSeparator ) {
173- return null ;
174- }
175- try {
176- fs . statSync ( filePath + fileSeparator + '.git' + fileSeparator + 'config' ) ;
177- return filePath ;
178- } catch ( e ) {
179- let parentFilePath = filePath . split ( fileSeparator ) ;
180- parentFilePath . pop ( ) ;
181- return exports . findGitConfig ( parentFilePath . join ( fileSeparator ) ) ;
182- }
183- }
184-
185- const getGitMetaData = ( ) => {
186- return new Promise ( async ( resolve , reject ) => {
187- try {
188- var info = getRepoInfo ( ) ;
189- if ( ! info . commonGitDir ) {
190- exports . debug ( `Unable to find a Git directory` ) ;
191- resolve ( { } ) ;
192- }
193- if ( ! info . author && exports . findGitConfig ( process . cwd ( ) ) ) {
194- /* commit objects are packed */
195- gitLastCommit . getLastCommit ( async ( err , commit ) => {
196- if ( err ) {
197- exports . debug ( `Exception in populating Git Metadata with error : ${ err } ` , true , err ) ;
198- return resolve ( { } ) ;
199- }
200- try {
201- info [ "author" ] = info [ "author" ] || `${ commit [ "author" ] [ "name" ] . replace ( / [ “ ] + / g, '' ) } <${ commit [ "author" ] [ "email" ] . replace ( / [ “ ] + / g, '' ) } >` ;
202- info [ "authorDate" ] = info [ "authorDate" ] || commit [ "authoredOn" ] ;
203- info [ "committer" ] = info [ "committer" ] || `${ commit [ "committer" ] [ "name" ] . replace ( / [ “ ] + / g, '' ) } <${ commit [ "committer" ] [ "email" ] . replace ( / [ “ ] + / g, '' ) } >` ;
204- info [ "committerDate" ] = info [ "committerDate" ] || commit [ "committedOn" ] ;
205- info [ "commitMessage" ] = info [ "commitMessage" ] || commit [ "subject" ] ;
206-
207- const { remote } = await pGitconfig ( info . commonGitDir ) ;
208- const remotes = Object . keys ( remote ) . map ( remoteName => ( { name : remoteName , url : remote [ remoteName ] [ 'url' ] } ) ) ;
209- resolve ( {
210- "name" : "git" ,
211- "sha" : info [ "sha" ] ,
212- "short_sha" : info [ "abbreviatedSha" ] ,
213- "branch" : info [ "branch" ] ,
214- "tag" : info [ "tag" ] ,
215- "committer" : info [ "committer" ] ,
216- "committer_date" : info [ "committerDate" ] ,
217- "author" : info [ "author" ] ,
218- "author_date" : info [ "authorDate" ] ,
219- "commit_message" : info [ "commitMessage" ] ,
220- "root" : info [ "root" ] ,
221- "common_git_dir" : info [ "commonGitDir" ] ,
222- "worktree_git_dir" : info [ "worktreeGitDir" ] ,
223- "last_tag" : info [ "lastTag" ] ,
224- "commits_since_last_tag" : info [ "commitsSinceLastTag" ] ,
225- "remotes" : remotes
226- } ) ;
227- } catch ( e ) {
228- exports . debug ( `Exception in populating Git Metadata with error : ${ e } ` , true , e ) ;
229- return resolve ( { } ) ;
230- }
231- } , { dst : exports . findGitConfig ( process . cwd ( ) ) } ) ;
232- } else {
233- const { remote } = await pGitconfig ( info . commonGitDir ) ;
234- const remotes = Object . keys ( remote ) . map ( remoteName => ( { name : remoteName , url : remote [ remoteName ] [ 'url' ] } ) ) ;
235- resolve ( {
236- "name" : "git" ,
237- "sha" : info [ "sha" ] ,
238- "short_sha" : info [ "abbreviatedSha" ] ,
239- "branch" : info [ "branch" ] ,
240- "tag" : info [ "tag" ] ,
241- "committer" : info [ "committer" ] ,
242- "committer_date" : info [ "committerDate" ] ,
243- "author" : info [ "author" ] ,
244- "author_date" : info [ "authorDate" ] ,
245- "commit_message" : info [ "commitMessage" ] ,
246- "root" : info [ "root" ] ,
247- "common_git_dir" : info [ "commonGitDir" ] ,
248- "worktree_git_dir" : info [ "worktreeGitDir" ] ,
249- "last_tag" : info [ "lastTag" ] ,
250- "commits_since_last_tag" : info [ "commitsSinceLastTag" ] ,
251- "remotes" : remotes
252- } ) ;
253- }
254- } catch ( err ) {
255- exports . debug ( `Exception in populating Git metadata with error : ${ err } ` , true , err ) ;
256- resolve ( { } ) ;
257- }
258- } )
259- }
260-
261- const getCiInfo = ( ) => {
262- var env = process . env ;
263- // Jenkins
264- if ( ( typeof env . JENKINS_URL === "string" && env . JENKINS_URL . length > 0 ) || ( typeof env . JENKINS_HOME === "string" && env . JENKINS_HOME . length > 0 ) ) {
265- return {
266- name : "Jenkins" ,
267- build_url : env . BUILD_URL ,
268- job_name : env . JOB_NAME ,
269- build_number : env . BUILD_NUMBER
270- }
271- }
272- // CircleCI
273- if ( env . CI === "true" && env . CIRCLECI === "true" ) {
274- return {
275- name : "CircleCI" ,
276- build_url : env . CIRCLE_BUILD_URL ,
277- job_name : env . CIRCLE_JOB ,
278- build_number : env . CIRCLE_BUILD_NUM
279- }
280- }
281- // Travis CI
282- if ( env . CI === "true" && env . TRAVIS === "true" ) {
283- return {
284- name : "Travis CI" ,
285- build_url : env . TRAVIS_BUILD_WEB_URL ,
286- job_name : env . TRAVIS_JOB_NAME ,
287- build_number : env . TRAVIS_BUILD_NUMBER
288- }
289- }
290- // Codeship
291- if ( env . CI === "true" && env . CI_NAME === "codeship" ) {
292- return {
293- name : "Codeship" ,
294- build_url : null ,
295- job_name : null ,
296- build_number : null
297- }
298- }
299- // Bitbucket
300- if ( env . BITBUCKET_BRANCH && env . BITBUCKET_COMMIT ) {
301- return {
302- name : "Bitbucket" ,
303- build_url : env . BITBUCKET_GIT_HTTP_ORIGIN ,
304- job_name : null ,
305- build_number : env . BITBUCKET_BUILD_NUMBER
306- }
307- }
308- // Drone
309- if ( env . CI === "true" && env . DRONE === "true" ) {
310- return {
311- name : "Drone" ,
312- build_url : env . DRONE_BUILD_LINK ,
313- job_name : null ,
314- build_number : env . DRONE_BUILD_NUMBER
315- }
316- }
317- // Semaphore
318- if ( env . CI === "true" && env . SEMAPHORE === "true" ) {
319- return {
320- name : "Semaphore" ,
321- build_url : env . SEMAPHORE_ORGANIZATION_URL ,
322- job_name : env . SEMAPHORE_JOB_NAME ,
323- build_number : env . SEMAPHORE_JOB_ID
324- }
325- }
326- // GitLab
327- if ( env . CI === "true" && env . GITLAB_CI === "true" ) {
328- return {
329- name : "GitLab" ,
330- build_url : env . CI_JOB_URL ,
331- job_name : env . CI_JOB_NAME ,
332- build_number : env . CI_JOB_ID
333- }
334- }
335- // Buildkite
336- if ( env . CI === "true" && env . BUILDKITE === "true" ) {
337- return {
338- name : "Buildkite" ,
339- build_url : env . BUILDKITE_BUILD_URL ,
340- job_name : env . BUILDKITE_LABEL || env . BUILDKITE_PIPELINE_NAME ,
341- build_number : env . BUILDKITE_BUILD_NUMBER
342- }
343- }
344- // Visual Studio Team Services
345- if ( env . TF_BUILD === "True" ) {
346- return {
347- name : "Visual Studio Team Services" ,
348- build_url : `${ env . SYSTEM_TEAMFOUNDATIONSERVERURI } ${ env . SYSTEM_TEAMPROJECTID } ` ,
349- job_name : env . SYSTEM_DEFINITIONID ,
350- build_number : env . BUILD_BUILDID
351- }
352- }
353- // if no matches, return null
354- return null ;
355- }
356-
357- let packages = { } ;
358-
359- exports . getPackageVersion = ( package_ , bsConfig = null ) => {
360- if ( packages [ package_ ] ) return packages [ package_ ] ;
361- let packageVersion ;
362- /* Try to find version from module path */
363- try {
364- packages [ package_ ] = this . requireModule ( `${ package_ } /package.json` ) . version ;
365- logger . info ( `Getting ${ package_ } package version from module path = ${ packages [ package_ ] } ` ) ;
366- packageVersion = packages [ package_ ] ;
367- } catch ( e ) {
368- exports . debug ( `Unable to find package ${ package_ } at module path with error ${ e } ` ) ;
369- }
370-
371- /* Read package version from npm_dependencies in browserstack.json file if present */
372- if ( utils . isUndefined ( packageVersion ) && bsConfig && ( process . env . BROWSERSTACK_AUTOMATION == "true" || process . env . BROWSERSTACK_AUTOMATION == "1" ) ) {
373- const runSettings = bsConfig . run_settings ;
374- if ( runSettings && runSettings . npm_dependencies !== undefined &&
375- Object . keys ( runSettings . npm_dependencies ) . length !== 0 &&
376- typeof runSettings . npm_dependencies === 'object' ) {
377- if ( package_ in runSettings . npm_dependencies ) {
378- packages [ package_ ] = runSettings . npm_dependencies [ package_ ] ;
379- logger . info ( `Getting ${ package_ } package version from browserstack.json = ${ packages [ package_ ] } ` ) ;
380- packageVersion = packages [ package_ ] ;
381- }
382- }
383- }
384-
385- /* Read package version from project's package.json if present */
386- const packageJSONPath = path . join ( process . cwd ( ) , 'package.json' ) ;
387- if ( utils . isUndefined ( packageVersion ) && fs . existsSync ( packageJSONPath ) ) {
388- const packageJSONContents = require ( packageJSONPath ) ;
389- if ( packageJSONContents . devDependencies && ! utils . isUndefined ( packageJSONContents . devDependencies [ package_ ] ) ) packages [ package_ ] = packageJSONContents . devDependencies [ package_ ] ;
390- if ( packageJSONContents . dependencies && ! utils . isUndefined ( packageJSONContents . dependencies [ package_ ] ) ) packages [ package_ ] = packageJSONContents . dependencies [ package_ ] ;
391- logger . info ( `Getting ${ package_ } package version from package.json = ${ packages [ package_ ] } ` ) ;
392- packageVersion = packages [ package_ ] ;
393- }
394-
395- return packageVersion ;
396- }
397-
398- exports . getAgentVersion = ( ) => {
399- let _path = path . join ( __dirname , '../../../package.json' ) ;
400- if ( fs . existsSync ( _path ) )
401- return require ( _path ) . version ;
402- }
403-
404165const setEnvironmentVariablesForRemoteReporter = ( BS_TESTOPS_JWT , BS_TESTOPS_BUILD_HASHED_ID , BS_TESTOPS_ALLOW_SCREENSHOTS , OBSERVABILITY_LAUNCH_SDK_VERSION ) => {
405166 process . env . BS_TESTOPS_JWT = BS_TESTOPS_JWT ;
406167 process . env . BS_TESTOPS_BUILD_HASHED_ID = BS_TESTOPS_BUILD_HASHED_ID ;
@@ -483,7 +244,7 @@ const setBrowserstackCypressCliDependency = (bsConfig) => {
483244 typeof runSettings . npm_dependencies === 'object' ) {
484245 if ( ! ( "browserstack-cypress-cli" in runSettings . npm_dependencies ) ) {
485246 logger . warn ( "Missing browserstack-cypress-cli not found in npm_dependencies" ) ;
486- runSettings . npm_dependencies [ 'browserstack-cypress-cli' ] = exports . getAgentVersion ( ) || "latest" ;
247+ runSettings . npm_dependencies [ 'browserstack-cypress-cli' ] = helper . getAgentVersion ( ) || "latest" ;
487248 logger . warn ( `Adding browserstack-cypress-cli version ${ runSettings . npm_dependencies [ 'browserstack-cypress-cli' ] } in npm_dependencies` ) ;
488249 }
489250 }
@@ -567,14 +328,14 @@ exports.launchTestSession = async (user_config, bsConfigPath) => {
567328 version : os . version ( ) ,
568329 arch : os . arch ( )
569330 } ,
570- 'ci_info' : getCiInfo ( ) ,
331+ 'ci_info' : helper . getCiInfo ( ) ,
571332 'build_run_identifier' : process . env . BROWSERSTACK_BUILD_RUN_IDENTIFIER ,
572333 'failed_tests_rerun' : process . env . BROWSERSTACK_RERUN || false ,
573- 'version_control' : await getGitMetaData ( ) ,
334+ 'version_control' : await helper . getGitMetaData ( ) ,
574335 'observability_version' : {
575336 frameworkName : "Cypress" ,
576- frameworkVersion : exports . getPackageVersion ( 'cypress' , user_config ) ,
577- sdkVersion : exports . getAgentVersion ( )
337+ frameworkVersion : helper . getPackageVersion ( 'cypress' , user_config ) ,
338+ sdkVersion : helper . getAgentVersion ( )
578339 }
579340 } ;
580341 const config = {
@@ -592,7 +353,7 @@ exports.launchTestSession = async (user_config, bsConfigPath) => {
592353 exports . debug ( 'Build creation successfull!' ) ;
593354 process . env . BS_TESTOPS_BUILD_COMPLETED = true ;
594355 setEnvironmentVariablesForRemoteReporter ( response . data . jwt , response . data . build_hashed_id , response . data . allow_screenshots , data . observability_version . sdkVersion ) ;
595- setEventListeners ( ) ;
356+ // setEventListeners();
596357 if ( this . isBrowserstackInfra ( ) ) setBrowserstackCypressCliDependency ( user_config ) ;
597358 } catch ( error ) {
598359 if ( ! error . errorType ) {
0 commit comments