@@ -10,6 +10,7 @@ const archiver = require("../helpers/archiver"),
10
10
Constants = require ( "../helpers/constants" ) ,
11
11
utils = require ( "../helpers/utils" ) ,
12
12
fileHelpers = require ( "../helpers/fileHelpers" ) ,
13
+ getInitialDetails = require ( '../helpers/getInitialDetails' ) . getInitialDetails ,
13
14
syncRunner = require ( "../helpers/syncRunner" ) ,
14
15
checkUploaded = require ( "../helpers/checkUploaded" ) ,
15
16
packageInstaller = require ( "../helpers/packageInstaller" ) ,
@@ -52,6 +53,8 @@ module.exports = function run(args, rawArgs) {
52
53
// accept the access key from command line or env variable if provided
53
54
utils . setAccessKey ( bsConfig , args ) ;
54
55
56
+ let buildReportData = await getInitialDetails ( bsConfig , args , rawArgs ) ;
57
+
55
58
// accept the build name from command line if provided
56
59
utils . setBuildName ( bsConfig , args ) ;
57
60
@@ -131,7 +134,7 @@ module.exports = function run(args, rawArgs) {
131
134
utils . setParallels ( bsConfig , args , specFiles . length ) ;
132
135
133
136
// warn if specFiles cross our limit
134
- utils . warnSpecLimit ( bsConfig , args , specFiles , rawArgs ) ;
137
+ utils . warnSpecLimit ( bsConfig , args , specFiles , rawArgs , buildReportData ) ;
135
138
markBlockEnd ( 'preArchiveSteps' ) ;
136
139
logger . debug ( "Completed pre-archive steps" ) ;
137
140
markBlockStart ( 'zip' ) ;
@@ -171,7 +174,7 @@ module.exports = function run(args, rawArgs) {
171
174
//setup Local Testing
172
175
markBlockStart ( 'localSetup' ) ;
173
176
logger . debug ( "Started setting up BrowserStack Local connection" ) ;
174
- let bs_local = await utils . setupLocalTesting ( bsConfig , args , rawArgs ) ;
177
+ let bs_local = await utils . setupLocalTesting ( bsConfig , args , rawArgs , buildReportData ) ;
175
178
logger . debug ( 'Completed setting up BrowserStack Local connection' ) ;
176
179
markBlockEnd ( 'localSetup' ) ;
177
180
logger . debug ( "Started build creation" ) ;
@@ -180,14 +183,10 @@ module.exports = function run(args, rawArgs) {
180
183
logger . debug ( "Completed build creation" ) ;
181
184
markBlockEnd ( 'createBuild' ) ;
182
185
markBlockEnd ( 'total' ) ;
183
- utils . setProcessHooks ( data . build_id , bsConfig , bs_local , args ) ;
186
+ utils . setProcessHooks ( data . build_id , bsConfig , bs_local , args , buildReportData ) ;
184
187
let message = `${ data . message } ! ${ Constants . userMessages . BUILD_CREATED } with build id: ${ data . build_id } ` ;
185
188
let dashboardLink = `${ Constants . userMessages . VISIT_DASHBOARD } ${ data . dashboard_url } ` ;
186
- let buildReportData = {
187
- 'build_id' : data . build_id ,
188
- 'user_id' : data . user_id ,
189
- 'parallels' : userSpecifiedParallels
190
- } ;
189
+ buildReportData = { 'build_id' : data . build_id , 'parallels' : userSpecifiedParallels , ...buildReportData }
191
190
utils . exportResults ( data . build_id , `${ config . dashboardUrl } ${ data . build_id } ` ) ;
192
191
if ( ( utils . isUndefined ( bsConfig . run_settings . parallels ) && utils . isUndefined ( args . parallels ) ) || ( ! utils . isUndefined ( bsConfig . run_settings . parallels ) && bsConfig . run_settings . parallels == Constants . cliMessages . RUN . DEFAULT_PARALLEL_MESSAGE ) ) {
193
192
logger . warn ( Constants . userMessages . NO_PARALLELS ) ;
@@ -211,11 +210,11 @@ module.exports = function run(args, rawArgs) {
211
210
212
211
if ( args . sync ) {
213
212
logger . debug ( "Started polling build status from BrowserStack" ) ;
214
- syncRunner . pollBuildStatus ( bsConfig , data , rawArgs ) . then ( async ( exitCode ) => {
213
+ syncRunner . pollBuildStatus ( bsConfig , data , rawArgs , buildReportData ) . then ( async ( exitCode ) => {
215
214
logger . debug ( "Completed polling of build status" ) ;
216
215
217
216
// stop the Local instance
218
- await utils . stopLocalBinary ( bsConfig , bs_local , args , rawArgs ) ;
217
+ await utils . stopLocalBinary ( bsConfig , bs_local , args , rawArgs , buildReportData ) ;
219
218
220
219
// waiting for 5 secs for upload to complete (as a safety measure)
221
220
await new Promise ( resolve => setTimeout ( resolve , 5000 ) ) ;
@@ -224,11 +223,11 @@ module.exports = function run(args, rawArgs) {
224
223
if ( exitCode != Constants . BUILD_FAILED_EXIT_CODE ) {
225
224
if ( utils . nonEmptyArray ( bsConfig . run_settings . downloads ) ) {
226
225
logger . debug ( "Downloading build artifacts" ) ;
227
- await downloadBuildArtifacts ( bsConfig , data . build_id , args , rawArgs ) ;
226
+ await downloadBuildArtifacts ( bsConfig , data . build_id , args , rawArgs , buildReportData ) ;
228
227
}
229
228
230
229
// Generate custom report!
231
- reportGenerator ( bsConfig , data . build_id , args , rawArgs , function ( ) {
230
+ reportGenerator ( bsConfig , data . build_id , args , rawArgs , buildReportData , function ( ) {
232
231
utils . sendUsageReport ( bsConfig , args , `${ message } \n${ dashboardLink } ` , Constants . messageTypes . SUCCESS , null , buildReportData , rawArgs ) ;
233
232
utils . handleSyncExit ( exitCode , data . dashboard_url ) ;
234
233
} ) ;
@@ -302,24 +301,24 @@ module.exports = function run(args, rawArgs) {
302
301
// Build creation failed
303
302
logger . error ( err ) ;
304
303
// stop the Local instance
305
- await utils . stopLocalBinary ( bsConfig , bs_local , args , rawArgs ) ;
304
+ await utils . stopLocalBinary ( bsConfig , bs_local , args , rawArgs , buildReportData ) ;
306
305
307
- utils . sendUsageReport ( bsConfig , args , err , Constants . messageTypes . ERROR , 'build_failed' , null , rawArgs ) ;
306
+ utils . sendUsageReport ( bsConfig , args , err , Constants . messageTypes . ERROR , 'build_failed' , buildReportData , rawArgs ) ;
308
307
process . exitCode = Constants . ERROR_EXIT_CODE ;
309
308
} ) ;
310
309
} ) . catch ( function ( err ) {
311
310
// Zip Upload failed | Local Start failed
312
311
logger . error ( err ) ;
313
312
if ( err === Constants . userMessages . LOCAL_START_FAILED ) {
314
- utils . sendUsageReport ( bsConfig , args , `${ err } \n${ Constants . userMessages . LOCAL_START_FAILED } ` , Constants . messageTypes . ERROR , 'local_start_failed' , null , rawArgs ) ;
313
+ utils . sendUsageReport ( bsConfig , args , `${ err } \n${ Constants . userMessages . LOCAL_START_FAILED } ` , Constants . messageTypes . ERROR , 'local_start_failed' , buildReportData , rawArgs ) ;
315
314
} else {
316
315
logger . error ( Constants . userMessages . ZIP_UPLOAD_FAILED ) ;
317
316
fileHelpers . deleteZip ( ) ;
318
- utils . sendUsageReport ( bsConfig , args , `${ err } \n${ Constants . userMessages . ZIP_UPLOAD_FAILED } ` , Constants . messageTypes . ERROR , 'zip_upload_failed' , null , rawArgs ) ;
317
+ utils . sendUsageReport ( bsConfig , args , `${ err } \n${ Constants . userMessages . ZIP_UPLOAD_FAILED } ` , Constants . messageTypes . ERROR , 'zip_upload_failed' , buildReportData , rawArgs ) ;
319
318
try {
320
319
fileHelpers . deletePackageArchieve ( ) ;
321
320
} catch ( err ) {
322
- utils . sendUsageReport ( bsConfig , args , Constants . userMessages . NPM_DELETE_FAILED , Constants . messageTypes . ERROR , 'npm_deletion_failed' , null , rawArgs ) ;
321
+ utils . sendUsageReport ( bsConfig , args , Constants . userMessages . NPM_DELETE_FAILED , Constants . messageTypes . ERROR , 'npm_deletion_failed' , buildReportData , rawArgs ) ;
323
322
}
324
323
}
325
324
process . exitCode = Constants . ERROR_EXIT_CODE ;
@@ -328,36 +327,36 @@ module.exports = function run(args, rawArgs) {
328
327
// Zipping failed
329
328
logger . error ( err ) ;
330
329
logger . error ( Constants . userMessages . FAILED_TO_ZIP ) ;
331
- utils . sendUsageReport ( bsConfig , args , `${ err } \n${ Constants . userMessages . FAILED_TO_ZIP } ` , Constants . messageTypes . ERROR , 'zip_creation_failed' , null , rawArgs ) ;
330
+ utils . sendUsageReport ( bsConfig , args , `${ err } \n${ Constants . userMessages . FAILED_TO_ZIP } ` , Constants . messageTypes . ERROR , 'zip_creation_failed' , buildReportData , rawArgs ) ;
332
331
try {
333
332
fileHelpers . deleteZip ( ) ;
334
333
} catch ( err ) {
335
- utils . sendUsageReport ( bsConfig , args , Constants . userMessages . ZIP_DELETE_FAILED , Constants . messageTypes . ERROR , 'zip_deletion_failed' , null , rawArgs ) ;
334
+ utils . sendUsageReport ( bsConfig , args , Constants . userMessages . ZIP_DELETE_FAILED , Constants . messageTypes . ERROR , 'zip_deletion_failed' , buildReportData , rawArgs ) ;
336
335
}
337
336
try {
338
337
fileHelpers . deletePackageArchieve ( ) ;
339
338
} catch ( err ) {
340
- utils . sendUsageReport ( bsConfig , args , Constants . userMessages . NPM_DELETE_FAILED , Constants . messageTypes . ERROR , 'npm_deletion_failed' , null , rawArgs ) ;
339
+ utils . sendUsageReport ( bsConfig , args , Constants . userMessages . NPM_DELETE_FAILED , Constants . messageTypes . ERROR , 'npm_deletion_failed' , buildReportData , rawArgs ) ;
341
340
}
342
341
process . exitCode = Constants . ERROR_EXIT_CODE ;
343
342
} ) ;
344
343
} ) . catch ( function ( err ) {
345
344
// package installer failed
346
345
logger . error ( err ) ;
347
346
logger . error ( Constants . userMessages . FAILED_CREATE_NPM_ARCHIVE ) ;
348
- utils . sendUsageReport ( bsConfig , args , Constants . userMessages . FAILED_CREATE_NPM_ARCHIVE , Constants . messageTypes . ERROR , 'npm_package_archive_failed' , null , rawArgs ) ;
347
+ utils . sendUsageReport ( bsConfig , args , Constants . userMessages . FAILED_CREATE_NPM_ARCHIVE , Constants . messageTypes . ERROR , 'npm_package_archive_failed' , buildReportData , rawArgs ) ;
349
348
try {
350
349
fileHelpers . deletePackageArchieve ( ) ;
351
350
} catch ( err ) {
352
- utils . sendUsageReport ( bsConfig , args , Constants . userMessages . NPM_DELETE_FAILED , Constants . messageTypes . ERROR , 'npm_deletion_failed' , null , rawArgs ) ;
351
+ utils . sendUsageReport ( bsConfig , args , Constants . userMessages . NPM_DELETE_FAILED , Constants . messageTypes . ERROR , 'npm_deletion_failed' , buildReportData , rawArgs ) ;
353
352
}
354
353
process . exitCode = Constants . ERROR_EXIT_CODE ;
355
354
} ) ;
356
355
} ) . catch ( function ( err ) {
357
356
// md5 check failed
358
357
logger . error ( err ) ;
359
358
logger . error ( Constants . userMessages . FAILED_MD5_CHECK ) ;
360
- utils . sendUsageReport ( bsConfig , args , Constants . userMessages . MD5_CHECK_FAILED , Constants . messageTypes . ERROR , 'zip_already_uploaded_failed' , null , rawArgs ) ;
359
+ utils . sendUsageReport ( bsConfig , args , Constants . userMessages . MD5_CHECK_FAILED , Constants . messageTypes . ERROR , 'zip_already_uploaded_failed' , buildReportData , rawArgs ) ;
361
360
process . exitCode = Constants . ERROR_EXIT_CODE ;
362
361
} ) ;
363
362
} ) . catch ( function ( err ) {
@@ -371,7 +370,7 @@ module.exports = function run(args, rawArgs) {
371
370
}
372
371
373
372
let error_code = utils . getErrorCodeFromMsg ( err ) ;
374
- utils . sendUsageReport ( bsConfig , args , `${ err } \n${ Constants . validationMessages . NOT_VALID } ` , Constants . messageTypes . ERROR , error_code , null , rawArgs ) ;
373
+ utils . sendUsageReport ( bsConfig , args , `${ err } \n${ Constants . validationMessages . NOT_VALID } ` , Constants . messageTypes . ERROR , error_code , buildReportData , rawArgs ) ;
375
374
process . exitCode = Constants . ERROR_EXIT_CODE ;
376
375
} ) ;
377
376
} ) . catch ( function ( err ) {
0 commit comments