@@ -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
@@ -128,7 +131,7 @@ module.exports = function run(args, rawArgs) {
128
131
utils . setParallels ( bsConfig , args , specFiles . length ) ;
129
132
130
133
// warn if specFiles cross our limit
131
- utils . warnSpecLimit ( bsConfig , args , specFiles , rawArgs ) ;
134
+ utils . warnSpecLimit ( bsConfig , args , specFiles , rawArgs , buildReportData ) ;
132
135
markBlockEnd ( 'preArchiveSteps' ) ;
133
136
logger . debug ( "Completed pre-archive steps" ) ;
134
137
markBlockStart ( 'zip' ) ;
@@ -168,7 +171,7 @@ module.exports = function run(args, rawArgs) {
168
171
//setup Local Testing
169
172
markBlockStart ( 'localSetup' ) ;
170
173
logger . debug ( "Started setting up BrowserStack Local connection" ) ;
171
- let bs_local = await utils . setupLocalTesting ( bsConfig , args , rawArgs ) ;
174
+ let bs_local = await utils . setupLocalTesting ( bsConfig , args , rawArgs , buildReportData ) ;
172
175
logger . debug ( 'Completed setting up BrowserStack Local connection' ) ;
173
176
markBlockEnd ( 'localSetup' ) ;
174
177
logger . debug ( "Started build creation" ) ;
@@ -177,14 +180,10 @@ module.exports = function run(args, rawArgs) {
177
180
logger . debug ( "Completed build creation" ) ;
178
181
markBlockEnd ( 'createBuild' ) ;
179
182
markBlockEnd ( 'total' ) ;
180
- utils . setProcessHooks ( data . build_id , bsConfig , bs_local , args ) ;
183
+ utils . setProcessHooks ( data . build_id , bsConfig , bs_local , args , buildReportData ) ;
181
184
let message = `${ data . message } ! ${ Constants . userMessages . BUILD_CREATED } with build id: ${ data . build_id } ` ;
182
185
let dashboardLink = `${ Constants . userMessages . VISIT_DASHBOARD } ${ data . dashboard_url } ` ;
183
- let buildReportData = {
184
- 'build_id' : data . build_id ,
185
- 'user_id' : data . user_id ,
186
- 'parallels' : userSpecifiedParallels
187
- } ;
186
+ buildReportData = { 'build_id' : data . build_id , 'parallels' : userSpecifiedParallels , ...buildReportData }
188
187
utils . exportResults ( data . build_id , `${ config . dashboardUrl } ${ data . build_id } ` ) ;
189
188
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 ) ) {
190
189
logger . warn ( Constants . userMessages . NO_PARALLELS ) ;
@@ -208,11 +207,11 @@ module.exports = function run(args, rawArgs) {
208
207
209
208
if ( args . sync ) {
210
209
logger . debug ( "Started polling build status from BrowserStack" ) ;
211
- syncRunner . pollBuildStatus ( bsConfig , data , rawArgs ) . then ( async ( exitCode ) => {
210
+ syncRunner . pollBuildStatus ( bsConfig , data , rawArgs , buildReportData ) . then ( async ( exitCode ) => {
212
211
logger . debug ( "Completed polling of build status" ) ;
213
212
214
213
// stop the Local instance
215
- await utils . stopLocalBinary ( bsConfig , bs_local , args , rawArgs ) ;
214
+ await utils . stopLocalBinary ( bsConfig , bs_local , args , rawArgs , buildReportData ) ;
216
215
217
216
// waiting for 5 secs for upload to complete (as a safety measure)
218
217
await new Promise ( resolve => setTimeout ( resolve , 5000 ) ) ;
@@ -221,11 +220,11 @@ module.exports = function run(args, rawArgs) {
221
220
if ( exitCode != Constants . BUILD_FAILED_EXIT_CODE ) {
222
221
if ( utils . nonEmptyArray ( bsConfig . run_settings . downloads ) ) {
223
222
logger . debug ( "Downloading build artifacts" ) ;
224
- await downloadBuildArtifacts ( bsConfig , data . build_id , args , rawArgs ) ;
223
+ await downloadBuildArtifacts ( bsConfig , data . build_id , args , rawArgs , buildReportData ) ;
225
224
}
226
225
227
226
// Generate custom report!
228
- reportGenerator ( bsConfig , data . build_id , args , rawArgs , function ( ) {
227
+ reportGenerator ( bsConfig , data . build_id , args , rawArgs , buildReportData , function ( ) {
229
228
utils . sendUsageReport ( bsConfig , args , `${ message } \n${ dashboardLink } ` , Constants . messageTypes . SUCCESS , null , buildReportData , rawArgs ) ;
230
229
utils . handleSyncExit ( exitCode , data . dashboard_url ) ;
231
230
} ) ;
@@ -299,24 +298,24 @@ module.exports = function run(args, rawArgs) {
299
298
// Build creation failed
300
299
logger . error ( err ) ;
301
300
// stop the Local instance
302
- await utils . stopLocalBinary ( bsConfig , bs_local , args , rawArgs ) ;
301
+ await utils . stopLocalBinary ( bsConfig , bs_local , args , rawArgs , buildReportData ) ;
303
302
304
- utils . sendUsageReport ( bsConfig , args , err , Constants . messageTypes . ERROR , 'build_failed' , null , rawArgs ) ;
303
+ utils . sendUsageReport ( bsConfig , args , err , Constants . messageTypes . ERROR , 'build_failed' , buildReportData , rawArgs ) ;
305
304
process . exitCode = Constants . ERROR_EXIT_CODE ;
306
305
} ) ;
307
306
} ) . catch ( function ( err ) {
308
307
// Zip Upload failed | Local Start failed
309
308
logger . error ( err ) ;
310
309
if ( err === Constants . userMessages . LOCAL_START_FAILED ) {
311
- utils . sendUsageReport ( bsConfig , args , `${ err } \n${ Constants . userMessages . LOCAL_START_FAILED } ` , Constants . messageTypes . ERROR , 'local_start_failed' , null , rawArgs ) ;
310
+ utils . sendUsageReport ( bsConfig , args , `${ err } \n${ Constants . userMessages . LOCAL_START_FAILED } ` , Constants . messageTypes . ERROR , 'local_start_failed' , buildReportData , rawArgs ) ;
312
311
} else {
313
312
logger . error ( Constants . userMessages . ZIP_UPLOAD_FAILED ) ;
314
313
fileHelpers . deleteZip ( ) ;
315
- utils . sendUsageReport ( bsConfig , args , `${ err } \n${ Constants . userMessages . ZIP_UPLOAD_FAILED } ` , Constants . messageTypes . ERROR , 'zip_upload_failed' , null , rawArgs ) ;
314
+ utils . sendUsageReport ( bsConfig , args , `${ err } \n${ Constants . userMessages . ZIP_UPLOAD_FAILED } ` , Constants . messageTypes . ERROR , 'zip_upload_failed' , buildReportData , rawArgs ) ;
316
315
try {
317
316
fileHelpers . deletePackageArchieve ( ) ;
318
317
} catch ( err ) {
319
- utils . sendUsageReport ( bsConfig , args , Constants . userMessages . NPM_DELETE_FAILED , Constants . messageTypes . ERROR , 'npm_deletion_failed' , null , rawArgs ) ;
318
+ utils . sendUsageReport ( bsConfig , args , Constants . userMessages . NPM_DELETE_FAILED , Constants . messageTypes . ERROR , 'npm_deletion_failed' , buildReportData , rawArgs ) ;
320
319
}
321
320
}
322
321
process . exitCode = Constants . ERROR_EXIT_CODE ;
@@ -325,36 +324,36 @@ module.exports = function run(args, rawArgs) {
325
324
// Zipping failed
326
325
logger . error ( err ) ;
327
326
logger . error ( Constants . userMessages . FAILED_TO_ZIP ) ;
328
- utils . sendUsageReport ( bsConfig , args , `${ err } \n${ Constants . userMessages . FAILED_TO_ZIP } ` , Constants . messageTypes . ERROR , 'zip_creation_failed' , null , rawArgs ) ;
327
+ utils . sendUsageReport ( bsConfig , args , `${ err } \n${ Constants . userMessages . FAILED_TO_ZIP } ` , Constants . messageTypes . ERROR , 'zip_creation_failed' , buildReportData , rawArgs ) ;
329
328
try {
330
329
fileHelpers . deleteZip ( ) ;
331
330
} catch ( err ) {
332
- utils . sendUsageReport ( bsConfig , args , Constants . userMessages . ZIP_DELETE_FAILED , Constants . messageTypes . ERROR , 'zip_deletion_failed' , null , rawArgs ) ;
331
+ utils . sendUsageReport ( bsConfig , args , Constants . userMessages . ZIP_DELETE_FAILED , Constants . messageTypes . ERROR , 'zip_deletion_failed' , buildReportData , rawArgs ) ;
333
332
}
334
333
try {
335
334
fileHelpers . deletePackageArchieve ( ) ;
336
335
} catch ( err ) {
337
- utils . sendUsageReport ( bsConfig , args , Constants . userMessages . NPM_DELETE_FAILED , Constants . messageTypes . ERROR , 'npm_deletion_failed' , null , rawArgs ) ;
336
+ utils . sendUsageReport ( bsConfig , args , Constants . userMessages . NPM_DELETE_FAILED , Constants . messageTypes . ERROR , 'npm_deletion_failed' , buildReportData , rawArgs ) ;
338
337
}
339
338
process . exitCode = Constants . ERROR_EXIT_CODE ;
340
339
} ) ;
341
340
} ) . catch ( function ( err ) {
342
341
// package installer failed
343
342
logger . error ( err ) ;
344
343
logger . error ( Constants . userMessages . FAILED_CREATE_NPM_ARCHIVE ) ;
345
- utils . sendUsageReport ( bsConfig , args , Constants . userMessages . FAILED_CREATE_NPM_ARCHIVE , Constants . messageTypes . ERROR , 'npm_package_archive_failed' , null , rawArgs ) ;
344
+ utils . sendUsageReport ( bsConfig , args , Constants . userMessages . FAILED_CREATE_NPM_ARCHIVE , Constants . messageTypes . ERROR , 'npm_package_archive_failed' , buildReportData , rawArgs ) ;
346
345
try {
347
346
fileHelpers . deletePackageArchieve ( ) ;
348
347
} catch ( err ) {
349
- utils . sendUsageReport ( bsConfig , args , Constants . userMessages . NPM_DELETE_FAILED , Constants . messageTypes . ERROR , 'npm_deletion_failed' , null , rawArgs ) ;
348
+ utils . sendUsageReport ( bsConfig , args , Constants . userMessages . NPM_DELETE_FAILED , Constants . messageTypes . ERROR , 'npm_deletion_failed' , buildReportData , rawArgs ) ;
350
349
}
351
350
process . exitCode = Constants . ERROR_EXIT_CODE ;
352
351
} ) ;
353
352
} ) . catch ( function ( err ) {
354
353
// md5 check failed
355
354
logger . error ( err ) ;
356
355
logger . error ( Constants . userMessages . FAILED_MD5_CHECK ) ;
357
- utils . sendUsageReport ( bsConfig , args , Constants . userMessages . MD5_CHECK_FAILED , Constants . messageTypes . ERROR , 'zip_already_uploaded_failed' , null , rawArgs ) ;
356
+ utils . sendUsageReport ( bsConfig , args , Constants . userMessages . MD5_CHECK_FAILED , Constants . messageTypes . ERROR , 'zip_already_uploaded_failed' , buildReportData , rawArgs ) ;
358
357
process . exitCode = Constants . ERROR_EXIT_CODE ;
359
358
} ) ;
360
359
} ) . catch ( function ( err ) {
@@ -368,7 +367,7 @@ module.exports = function run(args, rawArgs) {
368
367
}
369
368
370
369
let error_code = utils . getErrorCodeFromMsg ( err ) ;
371
- utils . sendUsageReport ( bsConfig , args , `${ err } \n${ Constants . validationMessages . NOT_VALID } ` , Constants . messageTypes . ERROR , error_code , null , rawArgs ) ;
370
+ utils . sendUsageReport ( bsConfig , args , `${ err } \n${ Constants . validationMessages . NOT_VALID } ` , Constants . messageTypes . ERROR , error_code , buildReportData , rawArgs ) ;
372
371
process . exitCode = Constants . ERROR_EXIT_CODE ;
373
372
} ) ;
374
373
} ) . catch ( function ( err ) {
0 commit comments