diff --git a/bin/commands/generateDownloads.js b/bin/commands/generateDownloads.js index b81d3feb..ce0aabfd 100644 --- a/bin/commands/generateDownloads.js +++ b/bin/commands/generateDownloads.js @@ -34,5 +34,6 @@ module.exports = async function generateDownloads(args) { logger.error(err); utils.setUsageReportingFlag(null, args.disableUsageReporting); utils.sendUsageReport(null, args, err.message, Constants.messageTypes.ERROR, utils.getErrorCodeFromErr(err)); + process.exitCode = Constants.ERROR_EXIT_CODE; }); }; diff --git a/bin/commands/generateReport.js b/bin/commands/generateReport.js index 21c74436..10199822 100644 --- a/bin/commands/generateReport.js +++ b/bin/commands/generateReport.js @@ -35,5 +35,6 @@ module.exports = function generateReport(args) { logger.error(err); utils.setUsageReportingFlag(null, args.disableUsageReporting); utils.sendUsageReport(null, args, err.message, Constants.messageTypes.ERROR, utils.getErrorCodeFromErr(err)); + process.exitCode = Constants.ERROR_EXIT_CODE; }); }; diff --git a/bin/commands/info.js b/bin/commands/info.js index 211f5bd8..d162e603 100644 --- a/bin/commands/info.js +++ b/bin/commands/info.js @@ -96,5 +96,6 @@ module.exports = function info(args) { logger.error(err); utils.setUsageReportingFlag(null, args.disableUsageReporting); utils.sendUsageReport(null, args, err.message, Constants.messageTypes.ERROR, utils.getErrorCodeFromErr(err)); + process.exitCode = Constants.ERROR_EXIT_CODE; }) } diff --git a/bin/commands/runs.js b/bin/commands/runs.js index e731bc0b..47fc70e7 100644 --- a/bin/commands/runs.js +++ b/bin/commands/runs.js @@ -189,6 +189,7 @@ module.exports = function run(args) { await utils.stopLocalBinary(bsConfig, bs_local, args); utils.sendUsageReport(bsConfig, args, err, Constants.messageTypes.ERROR, 'build_failed'); + process.exitCode = Constants.ERROR_EXIT_CODE; }); }).catch(function (err) { // Zip Upload failed | Local Start failed @@ -200,6 +201,7 @@ module.exports = function run(args) { fileHelpers.deleteZip(); utils.sendUsageReport(bsConfig, args, `${err}\n${Constants.userMessages.ZIP_UPLOAD_FAILED}`, Constants.messageTypes.ERROR, 'zip_upload_failed'); } + process.exitCode = Constants.ERROR_EXIT_CODE; }); }).catch(function (err) { // Zipping failed @@ -211,12 +213,14 @@ module.exports = function run(args) { } catch (err) { utils.sendUsageReport(bsConfig, args, Constants.userMessages.ZIP_DELETE_FAILED, Constants.messageTypes.ERROR, 'zip_deletion_failed'); } + process.exitCode = Constants.ERROR_EXIT_CODE; }); }).catch(function (err) { // md5 check failed logger.error(err); logger.error(Constants.userMessages.FAILED_MD5_CHECK); utils.sendUsageReport(bsConfig, args, Constants.userMessages.MD5_CHECK_FAILED, Constants.messageTypes.ERROR, 'zip_already_uploaded_failed'); + process.exitCode = Constants.ERROR_EXIT_CODE; }); }).catch(function (err) { // browerstack.json is not valid @@ -230,10 +234,12 @@ module.exports = function run(args) { let error_code = utils.getErrorCodeFromMsg(err); utils.sendUsageReport(bsConfig, args, `${err}\n${Constants.validationMessages.NOT_VALID}`, Constants.messageTypes.ERROR, error_code); + process.exitCode = Constants.ERROR_EXIT_CODE; }); }).catch(function (err) { logger.error(err); utils.setUsageReportingFlag(null, args.disableUsageReporting); utils.sendUsageReport(null, args, err.message, Constants.messageTypes.ERROR, utils.getErrorCodeFromErr(err)); + process.exitCode = Constants.ERROR_EXIT_CODE; }); } diff --git a/bin/commands/stop.js b/bin/commands/stop.js index 5a7cbe2c..736b4517 100644 --- a/bin/commands/stop.js +++ b/bin/commands/stop.js @@ -92,5 +92,6 @@ module.exports = function stop(args) { logger.error(err); utils.setUsageReportingFlag(null, args.disableUsageReporting); utils.sendUsageReport(null, args, err.message, Constants.messageTypes.ERROR, utils.getErrorCodeFromErr(err)); + process.exitCode = Constants.ERROR_EXIT_CODE; }) } diff --git a/bin/helpers/buildArtifacts.js b/bin/helpers/buildArtifacts.js index 886e0f17..e1ce546a 100644 --- a/bin/helpers/buildArtifacts.js +++ b/bin/helpers/buildArtifacts.js @@ -193,6 +193,7 @@ exports.downloadBuildArtifacts = async (bsConfig, buildId, args) => { messageType = Constants.messageTypes.ERROR; message = Constants.userMessages.DOWNLOAD_BUILD_ARTIFACTS_FAILED.replace('', buildId).replace('', BUILD_ARTIFACTS_FAIL_COUNT); logger.error(message); + process.exitCode = Constants.ERROR_EXIT_CODE; } else { messageType = Constants.messageTypes.SUCCESS; message = Constants.userMessages.DOWNLOAD_BUILD_ARTIFACTS_SUCCESS.replace('', buildId).replace('', process.cwd()); @@ -214,5 +215,6 @@ exports.downloadBuildArtifacts = async (bsConfig, buildId, args) => { } utils.sendUsageReport(bsConfig, args, err, messageType, errorCode); + process.exitCode = Constants.ERROR_EXIT_CODE; } }; diff --git a/bin/helpers/constants.js b/bin/helpers/constants.js index f4948790..99a6285e 100644 --- a/bin/helpers/constants.js +++ b/bin/helpers/constants.js @@ -188,6 +188,8 @@ const usageReportingConstants = { const LATEST_VERSION_SYNTAX_REGEX = /\d*.latest(.\d*)?/gm +const ERROR_EXIT_CODE = 1; + module.exports = Object.freeze({ syncCLI, userMessages, @@ -203,5 +205,6 @@ module.exports = Object.freeze({ SPEC_TOTAL_CHAR_LIMIT, METADATA_CHAR_BUFFER_PER_SPEC, usageReportingConstants, - LATEST_VERSION_SYNTAX_REGEX + LATEST_VERSION_SYNTAX_REGEX, + ERROR_EXIT_CODE }); diff --git a/bin/helpers/reporterHTML.js b/bin/helpers/reporterHTML.js index db18b4df..263f49f6 100644 --- a/bin/helpers/reporterHTML.js +++ b/bin/helpers/reporterHTML.js @@ -277,7 +277,10 @@ function generateCypressCombinationSpecReportDataWithConfigJson(combination){ }); combination.tests = sessionTests; resolve(combination.tests); - } catch (error) { reject(error) } + } catch (error) { + process.exitCode = Constants.ERROR_EXIT_CODE; + reject(error); + } }) } @@ -308,7 +311,10 @@ function generateCypressCombinationSpecReportDataWithoutConfigJson(combination){ }); combination.tests = sessionTests; resolve(combination.tests); - } catch (error) { reject(error) } + } catch (error) { + process.exitCode = Constants.ERROR_EXIT_CODE; + reject(error); + } }) }