Skip to content

Commit 6703003

Browse files
sparsh00sparsh0204
andauthored
Better instrument check zip present (#164)
* better instrument check zip present * close block on error * spec fix Co-authored-by: Sparsh Agarwal <[email protected]>
1 parent 1166f6f commit 6703003

File tree

4 files changed

+32
-12
lines changed

4 files changed

+32
-12
lines changed

bin/commands/runs.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ module.exports = function run(args) {
9393
utils.warnSpecLimit(bsConfig, args, specFiles);
9494
markBlockEnd('preArchiveSteps');
9595
markBlockStart('checkAlreadyUploaded');
96-
return checkUploaded.checkUploadedMd5(bsConfig, args).then(function (md5data) {
96+
return checkUploaded.checkUploadedMd5(bsConfig, args, {markBlockStart, markBlockEnd}).then(function (md5data) {
9797
markBlockEnd('checkAlreadyUploaded');
9898

9999
// Archive the spec files

bin/helpers/checkUploaded.js

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ const crypto = require('crypto'),
1010
utils = require('./utils');
1111

1212

13-
const checkSpecsMd5 = (runSettings, excludeFiles) => {
13+
const checkSpecsMd5 = (runSettings, excludeFiles, instrumentBlocks) => {
1414
return new Promise(function (resolve, reject) {
1515
let cypressFolderPath = path.dirname(runSettings.cypressConfigFilePath);
1616
let ignoreFiles = utils.getFilesToIgnore(runSettings, excludeFiles, false);
@@ -19,7 +19,7 @@ const checkSpecsMd5 = (runSettings, excludeFiles) => {
1919
ignore: ignoreFiles,
2020
pattern: `**/*.+(${Constants.allowedFileTypes.join("|")})`
2121
};
22-
hashHelper.hashWrapper(options).then(function (data) {
22+
hashHelper.hashWrapper(options, instrumentBlocks).then(function (data) {
2323
const outputHash = crypto.createHash(Constants.hashingOptions.algo);
2424
outputHash.update(data);
2525
outputHash.update(checkPackageMd5(runSettings));
@@ -62,17 +62,21 @@ const checkPackageMd5 = (runSettings) => {
6262
return outputHash.digest(Constants.hashingOptions.encoding)
6363
};
6464

65-
const checkUploadedMd5 = (bsConfig, args) => {
65+
const checkUploadedMd5 = (bsConfig, args, instrumentBlocks) => {
6666
return new Promise(function (resolve) {
6767
let obj = {
6868
zipUrlPresent: false,
6969
};
7070
if (args["force-upload"]) {
7171
return resolve(obj);
7272
}
73-
checkSpecsMd5(bsConfig.run_settings, args.exclude).then(function (md5data) {
73+
instrumentBlocks.markBlockStart("checkAlreadyUploaded.md5Total");
74+
checkSpecsMd5(bsConfig.run_settings, args.exclude, instrumentBlocks).then(function (md5data) {
7475
Object.assign(obj, {md5sum: md5data});
76+
instrumentBlocks.markBlockStart("checkAlreadyUploaded.md5Package");
7577
let package_md5sum = checkPackageMd5(bsConfig.run_settings);
78+
instrumentBlocks.markBlockEnd("checkAlreadyUploaded.md5Package");
79+
instrumentBlocks.markBlockEnd("checkAlreadyUploaded.md5Total");
7680
let data = JSON.stringify({ zip_md5sum: md5data, instrument_package_md5sum: package_md5sum});
7781

7882
let options = {
@@ -88,8 +92,10 @@ const checkUploadedMd5 = (bsConfig, args) => {
8892
body: data
8993
};
9094

95+
instrumentBlocks.markBlockStart("checkAlreadyUploaded.railsCheck");
9196
request.post(options, function (err, resp, body) {
9297
if (err) {
98+
instrumentBlocks.markBlockEnd("checkAlreadyUploaded.railsCheck");
9399
resolve(obj);
94100
} else {
95101
let zipData = null;
@@ -101,6 +107,7 @@ const checkUploadedMd5 = (bsConfig, args) => {
101107
if (resp.statusCode === 200 && !utils.isUndefined(zipData.zipUrl)) {
102108
Object.assign(obj, zipData, {zipUrlPresent: true});
103109
}
110+
instrumentBlocks.markBlockEnd("checkAlreadyUploaded.railsCheck");
104111
resolve(obj);
105112
}
106113
});

bin/helpers/hashUtil.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,16 @@ const glob = require('readdir-glob'),
44
crypto = require('crypto'),
55
fs = require('fs');
66

7-
const hashWrapper = (options) => {
7+
const hashWrapper = (options, instrumentBlocks) => {
8+
instrumentBlocks.markBlockStart("checkAlreadyUploaded.md5Stats");
89
return folderStats(options).then((files) => {
10+
instrumentBlocks.markBlockEnd("checkAlreadyUploaded.md5Stats");
11+
instrumentBlocks.markBlockStart("checkAlreadyUploaded.md5Batch");
912
return batchHashFile(files);
1013
}).then((hashes) => {
1114
const combinedHash = crypto.createHash(Constants.hashingOptions.algo);
1215
hashes.forEach((hash) => combinedHash.update(hash));
16+
instrumentBlocks.markBlockEnd("checkAlreadyUploaded.md5Batch");
1317
return combinedHash.digest(Constants.hashingOptions.encoding);
1418
});
1519
}

test/unit/bin/helpers/checkUploaded.js

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,11 @@ describe("checkUploaded", () => {
4343
checkSpecsMd5: checkSpecsMd5Stub
4444
});
4545
let checkUploadedMd5rewire = checkUploaded.__get__('checkUploadedMd5');
46-
47-
return checkUploadedMd5rewire(bsConfig, {})
46+
let instrumentBlocks = {
47+
markBlockStart: sinon.stub(),
48+
markBlockEnd: sinon.stub()
49+
}
50+
return checkUploadedMd5rewire(bsConfig, {}, instrumentBlocks)
4851
.then(function (data) {
4952
chai.assert.equal(data.md5sum, 'random_md5sum');
5053
chai.assert.equal(data.zipUrlPresent, false);
@@ -67,8 +70,11 @@ describe("checkUploaded", () => {
6770
checkSpecsMd5: checkSpecsMd5Stub
6871
});
6972
let checkUploadedMd5rewire = checkUploaded.__get__('checkUploadedMd5');
70-
71-
return checkUploadedMd5rewire(bsConfig, {})
73+
let instrumentBlocks = {
74+
markBlockStart: sinon.stub(),
75+
markBlockEnd: sinon.stub()
76+
}
77+
return checkUploadedMd5rewire(bsConfig, {}, instrumentBlocks)
7278
.then(function (data) {
7379
chai.assert.deepEqual(data, { md5sum: 'random_md5sum', zipUrlPresent: true, zipUrl: 'bs://random_hashid' })
7480
sinon.assert.calledOnce(requestStub);
@@ -90,8 +96,11 @@ describe("checkUploaded", () => {
9096
checkSpecsMd5: checkSpecsMd5Stub
9197
});
9298
let checkUploadedMd5rewire = checkUploaded.__get__('checkUploadedMd5');
93-
94-
return checkUploadedMd5rewire(bsConfig, {})
99+
let instrumentBlocks = {
100+
markBlockStart: sinon.stub(),
101+
markBlockEnd: sinon.stub()
102+
}
103+
return checkUploadedMd5rewire(bsConfig, {}, instrumentBlocks)
95104
.then(function (data) {
96105
chai.assert.deepEqual(data, { md5sum: 'random_md5sum', zipUrlPresent: false })
97106
sinon.assert.calledOnce(requestStub);

0 commit comments

Comments
 (0)