Skip to content

Commit d749c3a

Browse files
Merge pull request #191 from browserstack/time_split
instrument zip upload time split
2 parents 20a7bc7 + 6a34f03 commit d749c3a

File tree

3 files changed

+26
-4
lines changed

3 files changed

+26
-4
lines changed

bin/commands/runs.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ const archiver = require("../helpers/archiver"),
1818
downloadBuildArtifacts = require('../helpers/buildArtifacts').downloadBuildArtifacts,
1919
updateNotifier = require('update-notifier'),
2020
pkg = require('../../package.json');
21+
2122
module.exports = function run(args, rawArgs) {
2223
let bsConfigPath = utils.getConfigPath(args.cf);
2324
//Delete build_results.txt from log folder if already present.
@@ -201,6 +202,14 @@ module.exports = function run(args, rawArgs) {
201202
test_zip_size: test_zip_size,
202203
npm_zip_size: npm_zip_size,
203204
};
205+
206+
if (zip.tests_upload_time || zip.npm_package_upload_time) {
207+
dataToSend.time_components.zip.zipUploadSplit = {
208+
tests_upload_time: zip.tests_upload_time,
209+
npm_package_upload_time: zip.npm_package_upload_time,
210+
}
211+
}
212+
204213
if (bsConfig && bsConfig.connection_settings) {
205214
if (bsConfig.connection_settings.local_mode) {
206215
dataToSend.local_mode = bsConfig.connection_settings.local_mode;

bin/helpers/zipUpload.js

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ const config = require("./config"),
77

88
const uploadSuits = (bsConfig, filePath, opts) => {
99
return new Promise(function (resolve, reject) {
10+
let startTime = Date.now();
11+
1012
if (opts.urlPresent) {
1113
return resolve({ [opts.md5ReturnKey]: opts.url });
1214
}
@@ -30,6 +32,7 @@ const uploadSuits = (bsConfig, filePath, opts) => {
3032
if (resp.statusCode != 200) {
3133
if (resp.statusCode == 401) {
3234
if (responseData && responseData["error"]) {
35+
responseData["time"] = Date.now() - startTime;
3336
return reject(responseData["error"]);
3437
} else {
3538
return reject(Constants.validationMessages.INVALID_DEFAULT_AUTH_PARAMS);
@@ -39,6 +42,7 @@ const uploadSuits = (bsConfig, filePath, opts) => {
3942
return resolve({});
4043
}
4144
if(responseData && responseData["error"]){
45+
responseData["time"] = Date.now() - startTime;
4246
reject(responseData["error"]);
4347
} else {
4448
if (resp.statusCode == 413) {
@@ -50,6 +54,7 @@ const uploadSuits = (bsConfig, filePath, opts) => {
5054
} else {
5155
logger.info(`${opts.messages.uploadingSuccess} (${responseData[opts.md5ReturnKey]})`);
5256
opts.cleanupMethod();
57+
responseData["time"] = Date.now() - startTime;
5358
resolve(responseData);
5459
}
5560
}
@@ -66,12 +71,20 @@ const uploadCypressZip = (bsConfig, md5data, packageData) => {
6671
let zipUpload = uploadSuits(bsConfig, config.fileName, zipOptions);
6772
let npmPackageUpload = uploadSuits(bsConfig, config.packageFileName, npmOptions);
6873
Promise.all([zipUpload, npmPackageUpload]).then(function (uploads) {
69-
uploads.forEach(upload => Object.assign(obj, upload))
74+
uploads.forEach(upload => {
75+
if(upload.zip_url && upload.time) {
76+
upload.tests_upload_time = upload.time;
77+
} else if (upload.npm_package_url && upload.time) {
78+
upload.npm_package_upload_time = upload.time;
79+
}
80+
delete upload.time;
81+
Object.assign(obj, upload);
82+
});
7083
return resolve(obj);
7184
}).catch((error) => {
7285
return reject(error);
7386
})
7487
})
7588
}
7689

77-
exports.zipUpload = uploadCypressZip
90+
exports.zipUpload = uploadCypressZip;

test/unit/bin/helpers/zipUpload.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ describe("zipUpload", () => {
110110
}
111111
return uploadSuitsrewire(bsConfig, filePath, opts)
112112
.then((data) => {
113-
chai.assert.deepEqual(data, {});
113+
chai.assert.hasAllKeys(data, ["time"]);
114114
})
115115
.catch((_error) => {
116116
chai.assert.fail("Promise error");
@@ -135,7 +135,7 @@ describe("zipUpload", () => {
135135
}
136136
return uploadSuitsrewire(bsConfig, filePath, opts)
137137
.then((data) => {
138-
chai.assert.deepEqual(data, {zip_url: 'zip_url'});
138+
chai.assert.hasAllKeys(data, ["zip_url", "time"]);
139139
})
140140
.catch((_error) => {
141141
chai.assert.fail("Promise error");

0 commit comments

Comments
 (0)