From b0dd1941581b6e95ef5a0924ccc5eb901eb16eec Mon Sep 17 00:00:00 2001 From: BlueWinds Date: Wed, 5 Jan 2022 11:48:00 -0800 Subject: [PATCH 01/10] Mocha performance reporter --- system-tests/lib/performance-reporter.js | 41 ++++++++++++++++++++++++ system-tests/package.json | 1 + yarn.lock | 32 +++++++++++------- 3 files changed, 63 insertions(+), 11 deletions(-) create mode 100644 system-tests/lib/performance-reporter.js diff --git a/system-tests/lib/performance-reporter.js b/system-tests/lib/performance-reporter.js new file mode 100644 index 000000000000..49eb95e6bdc5 --- /dev/null +++ b/system-tests/lib/performance-reporter.js @@ -0,0 +1,41 @@ +const path = require('path') +const chalk = require('chalk') +const mochaReporters = require('mocha-7.0.1/lib/reporters') +const StatsD = require('hot-shots') + +class StatsdReporter extends mochaReporters.Spec { + constructor (runner) { + super(runner) + const statsD = new StatsD({}) + let startTime; let testTime + + runner.on('start', () => { + console.log(chalk.bold.green(' Reporting performance to statsd')) + startTime = Date.now() + }) + + runner.on('test', () => { + testTime = Date.now() + }) + + runner.on('test end', (test) => { + const specName = path.basename(runner.suite.file).replace(/\W/g, '_') + const testTitle = test.title.replace(/\W/g, '_') + const statsdPath = `performance.${specName}.${testTitle}` + + statsD.timing(`${statsdPath }.hooks`, test.timings.lifecycle) + statsD.timing(`${statsdPath }.test`, test.timings.test.fnDuration) + statsD.timing(`${statsdPath }.total`, Date.now() - testTime) + }) + + runner.on('end', (spec) => { + const specName = path.basename(runner.suite.file).replace(/\W/g, '_') + const statsdPath = `performance.${specName}` + + statsD.timing(`${statsdPath }.mocha`, runner.stats.wallClockEndedAt - runner.stats.wallClockStartedAt) + statsD.timing(`${statsdPath }.total`, Date.now() - startTime) + }) + } +} + +module.exports = StatsdReporter diff --git a/system-tests/package.json b/system-tests/package.json index 57c202776b78..cb900b8e3575 100644 --- a/system-tests/package.json +++ b/system-tests/package.json @@ -50,6 +50,7 @@ "fluent-ffmpeg": "2.1.2", "fs-extra": "8.1.0", "glob": "7.2.0", + "hot-shots": "9.0.0", "http-mitm-proxy": "0.7.0", "https-proxy-agent": "3.0.1", "human-interval": "1.0.0", diff --git a/yarn.lock b/yarn.lock index 7d856ed02336..41cdb1f42d6f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12436,7 +12436,7 @@ binaryextensions@^4.18.0: resolved "https://registry.yarnpkg.com/binaryextensions/-/binaryextensions-4.18.0.tgz#22aeada2d14de062c60e8ca59a504a5636a76ceb" integrity sha512-PQu3Kyv9dM4FnwB7XGj1+HucW+ShvJzJqjuw1JkKVs1mWdwOKVcRjOi+pV9X52A0tNvrPCsPkbFFQb+wE1EAXw== -bindings@^1.5.0: +bindings@^1.3.0, bindings@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== @@ -19746,12 +19746,7 @@ follow-redirects@1.5.10: dependencies: debug "=3.1.0" -follow-redirects@^1.0.0: - version "1.12.1" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.12.1.tgz#de54a6205311b93d60398ebc01cf7015682312b6" - integrity sha512-tmRv0AVuR7ZyouUHLeNSiO6pqulF7dYa3s19c6t+wz9LD69/uSzdMxJ2S91nTI9U3rt/IldxpzMOFejp6f0hjg== - -follow-redirects@^1.14.0: +follow-redirects@^1.0.0, follow-redirects@^1.14.0: version "1.14.5" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.5.tgz#f09a5848981d3c772b5392309778523f8d85c381" integrity sha512-wtphSXy7d4/OR+MvIFbCVBDzZ5520qV8XfPklSN5QtxuMUJZ+b0Wnst1e1lCDocfzuCkHqj8k0FpZqO+UIaKNA== @@ -21663,6 +21658,13 @@ hosted-git-info@^4.0.0, hosted-git-info@^4.0.1, hosted-git-info@^4.0.2: dependencies: lru-cache "^6.0.0" +hot-shots@9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/hot-shots/-/hot-shots-9.0.0.tgz#b88421aa81c1ef37f4cc53ade7f1e3daaa584b5e" + integrity sha512-fpljto22PvfzDGznnzUpWgFMgccyZRtWo+fY8R4ktwipkv3ywDyeaTLijYaM629DEZvtnEDAN00yV6zxzivnpQ== + optionalDependencies: + unix-dgram "2.0.x" + hotkeys-js@3.8.2: version "3.8.2" resolved "https://registry.yarnpkg.com/hotkeys-js/-/hotkeys-js-3.8.2.tgz#177c3e7dc19279c881e69983177849bed76e4747" @@ -27932,10 +27934,10 @@ mz@^2.4.0, mz@^2.5.0: object-assign "^4.0.1" thenify-all "^1.0.0" -nan@^2.10.0, nan@^2.12.1: - version "2.14.2" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" - integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== +nan@^2.10.0, nan@^2.12.1, nan@^2.13.2: + version "2.15.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" + integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== nanoid@3.1.20: version "3.1.20" @@ -38938,6 +38940,14 @@ universalify@^2.0.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== +unix-dgram@2.0.x: + version "2.0.4" + resolved "https://registry.yarnpkg.com/unix-dgram/-/unix-dgram-2.0.4.tgz#14d4fc21e539742b8fb027de16eccd4e5503a344" + integrity sha512-7tpK6x7ls7J7pDrrAU63h93R0dVhRbPwiRRCawR10cl+2e1VOvF3bHlVJc6WI1dl/8qk5He673QU+Ogv7bPNaw== + dependencies: + bindings "^1.3.0" + nan "^2.13.2" + unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" From 3f369e21aaa14de786bd080adac4849e89bd1dc7 Mon Sep 17 00:00:00 2001 From: BlueWinds Date: Mon, 10 Jan 2022 14:01:51 -0800 Subject: [PATCH 02/10] Run test timing reporter for all system tests --- mocha-reporter-config.json | 2 +- system-tests/lib/performance-reporter.js | 18 ++++-------------- 2 files changed, 5 insertions(+), 15 deletions(-) diff --git a/mocha-reporter-config.json b/mocha-reporter-config.json index 03a3455db100..38bd780a500d 100644 --- a/mocha-reporter-config.json +++ b/mocha-reporter-config.json @@ -1,5 +1,5 @@ { - "reporterEnabled": "spec, mocha-junit-reporter", + "reporterEnabled": "../../system-tests/lib/performance-reporter.js, mocha-junit-reporter", "mochaJunitReporterReporterOptions": { "mochaFile": "/tmp/cypress/junit/test-results.[hash].xml" } diff --git a/system-tests/lib/performance-reporter.js b/system-tests/lib/performance-reporter.js index 49eb95e6bdc5..baeef461bcf6 100644 --- a/system-tests/lib/performance-reporter.js +++ b/system-tests/lib/performance-reporter.js @@ -2,16 +2,16 @@ const path = require('path') const chalk = require('chalk') const mochaReporters = require('mocha-7.0.1/lib/reporters') const StatsD = require('hot-shots') +const version = require('../../package.json').version class StatsdReporter extends mochaReporters.Spec { constructor (runner) { super(runner) const statsD = new StatsD({}) - let startTime; let testTime + let testTime runner.on('start', () => { console.log(chalk.bold.green(' Reporting performance to statsd')) - startTime = Date.now() }) runner.on('test', () => { @@ -21,19 +21,9 @@ class StatsdReporter extends mochaReporters.Spec { runner.on('test end', (test) => { const specName = path.basename(runner.suite.file).replace(/\W/g, '_') const testTitle = test.title.replace(/\W/g, '_') - const statsdPath = `performance.${specName}.${testTitle}` + const statsdPath = `performance.${version}.${specName}.${testTitle}` - statsD.timing(`${statsdPath }.hooks`, test.timings.lifecycle) - statsD.timing(`${statsdPath }.test`, test.timings.test.fnDuration) - statsD.timing(`${statsdPath }.total`, Date.now() - testTime) - }) - - runner.on('end', (spec) => { - const specName = path.basename(runner.suite.file).replace(/\W/g, '_') - const statsdPath = `performance.${specName}` - - statsD.timing(`${statsdPath }.mocha`, runner.stats.wallClockEndedAt - runner.stats.wallClockStartedAt) - statsD.timing(`${statsdPath }.total`, Date.now() - startTime) + statsD.timing(`${statsdPath}`, Date.now() - testTime) }) } } From 15a9195b11dd10e8493a3bfb56cc1b36728b1dff Mon Sep 17 00:00:00 2001 From: BlueWinds Date: Tue, 11 Jan 2022 11:39:34 -0800 Subject: [PATCH 03/10] Tweaks --- circle.yml | 4 +++ system-tests/lib/performance-reporter.js | 32 +++++++++++++----------- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/circle.yml b/circle.yml index 2a115cfa0fef..5332f6011efc 100644 --- a/circle.yml +++ b/circle.yml @@ -508,6 +508,10 @@ commands: done SPECS=`echo $SPECS | xargs -n 1 | circleci tests split --split-by=timings` echo SPECS=$SPECS + if [[ "<>" =~ ^(develop|10.0-release|issue-19403-performance-tests)$ ]]; then + echo "Recording test timings" + CYPRESS_STATSD_TIMINGS=1 + fi yarn workspace @tooling/system-tests test:ci $SPECS --browser <> - verify-mocha-results - store_test_results: diff --git a/system-tests/lib/performance-reporter.js b/system-tests/lib/performance-reporter.js index baeef461bcf6..6b378db2a5d4 100644 --- a/system-tests/lib/performance-reporter.js +++ b/system-tests/lib/performance-reporter.js @@ -2,29 +2,31 @@ const path = require('path') const chalk = require('chalk') const mochaReporters = require('mocha-7.0.1/lib/reporters') const StatsD = require('hot-shots') -const version = require('../../package.json').version class StatsdReporter extends mochaReporters.Spec { constructor (runner) { super(runner) - const statsD = new StatsD({}) - let testTime - runner.on('start', () => { - console.log(chalk.bold.green(' Reporting performance to statsd')) - }) + if (process.env.CYPRESS_STATSD_TIMINGS) { + const statsD = new StatsD({}) + let testTime - runner.on('test', () => { - testTime = Date.now() - }) + runner.on('start', () => { + console.log(chalk.bold.green(' Reporting performance to statsd')) + }) - runner.on('test end', (test) => { - const specName = path.basename(runner.suite.file).replace(/\W/g, '_') - const testTitle = test.title.replace(/\W/g, '_') - const statsdPath = `performance.${version}.${specName}.${testTitle}` + runner.on('test', () => { + testTime = Date.now() + }) - statsD.timing(`${statsdPath}`, Date.now() - testTime) - }) + runner.on('test end', (test) => { + const specName = path.basename(runner.suite.file).replace(/\W/g, '_') + const testTitle = test.title.replace(/\W/g, '_') + const statsdPath = `cy_system_tests.${'branch'}.${specName}.${testTitle}` + + statsD.timing(`${statsdPath}`, Date.now() - testTime) + }) + } } } From c459e75422ca84d9a7043fd6d784098ffd1b2ccf Mon Sep 17 00:00:00 2001 From: BlueWinds Date: Mon, 24 Jan 2022 12:28:56 -0800 Subject: [PATCH 04/10] Switch to honeycomb instead of statsd --- system-tests/lib/performance-reporter.js | 62 +++++-- system-tests/lib/spec_helper.js | 1 + system-tests/lib/system-tests.ts | 6 + system-tests/package.json | 2 +- yarn.lock | 216 +++++++++++++++++++---- 5 files changed, 238 insertions(+), 49 deletions(-) diff --git a/system-tests/lib/performance-reporter.js b/system-tests/lib/performance-reporter.js index 6b378db2a5d4..d6c555abe9b4 100644 --- a/system-tests/lib/performance-reporter.js +++ b/system-tests/lib/performance-reporter.js @@ -1,33 +1,65 @@ const path = require('path') -const chalk = require('chalk') const mochaReporters = require('mocha-7.0.1/lib/reporters') -const StatsD = require('hot-shots') +const Libhoney = require('libhoney') +const pkg = require('@packages/root') + +const ciProvider = require('@packages/server/lib/util/ci_provider') +const { commitInfo } = require('@cypress/commit-info') class StatsdReporter extends mochaReporters.Spec { constructor (runner) { super(runner) + if (process.env.CIRCLECI) { + console.log('Reporting results to honeycomb') - if (process.env.CYPRESS_STATSD_TIMINGS) { - const statsD = new StatsD({}) - let testTime - - runner.on('start', () => { - console.log(chalk.bold.green(' Reporting performance to statsd')) + this.hny = new Libhoney({ + writeKey: '531a9eae0fcdde85b2ebccbe2b79e83c', + dataset: 'systemtest-performance', }) - runner.on('test', () => { - testTime = Date.now() + runner.on('test', (test) => { + test.honeycombEvent = this.hny.newEvent() + test.honeycombEvent.timestamp = Date.now() + + commitInfo().then((commitInformation) => { + const ciInformation = ciProvider.commitParams() || {} + + test.honeycombEvent.add({ + specFile: path.basename(test.file), + test: test.title, + branch: commitInformation.branch || ciInformation.branch, + commitSha: commitInformation.sha || ciInformation.sha, + buildUrl: process.env.CIRCLE_BUILD_URL, + platform: process.platform, + arch: process.arch, + version: pkg.version, + }) + }) }) - runner.on('test end', (test) => { - const specName = path.basename(runner.suite.file).replace(/\W/g, '_') - const testTitle = test.title.replace(/\W/g, '_') - const statsdPath = `cy_system_tests.${'branch'}.${specName}.${testTitle}` + runner.on('test end', (test, done) => { + // Skipped tests never get a 'start' event, but they still get 'test end' somehow. + if (test.honeycombEvent) { + test.honeycombEvent.add({ + // This is slightly longer than mocha's reported time + durationMs: Date.now() - test.honeycombEvent.timestamp, + mochaDurationMs: test.duration, + state: test.state, + }) - statsD.timing(`${statsdPath}`, Date.now() - testTime) + test.honeycombEvent.send() + } + }) + + runner.on('end', () => { + console.log('ending!') }) } } + + done (failures, callback) { + this.hny.flush().then(callback) + } } module.exports = StatsdReporter diff --git a/system-tests/lib/spec_helper.js b/system-tests/lib/spec_helper.js index 08346d1e84fb..8e184e79d630 100644 --- a/system-tests/lib/spec_helper.js +++ b/system-tests/lib/spec_helper.js @@ -103,6 +103,7 @@ beforeEach(function () { nock.disableNetConnect() nock.enableNetConnect(/localhost/) + nock.enableNetConnect(/api.honeycomb.io/) // always clean up the cache // before each test diff --git a/system-tests/lib/system-tests.ts b/system-tests/lib/system-tests.ts index 9f663cbf1c35..fe6a41b71b0e 100644 --- a/system-tests/lib/system-tests.ts +++ b/system-tests/lib/system-tests.ts @@ -605,6 +605,12 @@ const localItFn = function (title: string, opts: ItOptions) { const testTitle = `${title} [${browser}]` return mochaItFn(testTitle, function () { + if (this.test.honeycombEvent) { + this.test.honeycombEvent.add({ + browser, + }) + } + if (options.useSeparateBrowserSnapshots) { title = testTitle } diff --git a/system-tests/package.json b/system-tests/package.json index cb900b8e3575..0975359f95ed 100644 --- a/system-tests/package.json +++ b/system-tests/package.json @@ -50,12 +50,12 @@ "fluent-ffmpeg": "2.1.2", "fs-extra": "8.1.0", "glob": "7.2.0", - "hot-shots": "9.0.0", "http-mitm-proxy": "0.7.0", "https-proxy-agent": "3.0.1", "human-interval": "1.0.0", "image-size": "0.8.3", "lazy-ass": "1.6.0", + "libhoney": "3.0.0", "lodash": "^4.17.21", "mocha": "7.1.0", "mocha-banner": "1.1.2", diff --git a/yarn.lock b/yarn.lock index 6fb0cadf817a..9f76d42f2dd4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9984,7 +9984,7 @@ agent-base@4, agent-base@^4.3.0: dependencies: es6-promisify "^5.0.0" -agent-base@6, agent-base@^6.0.2: +agent-base@6, agent-base@^6.0.0, agent-base@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== @@ -10922,6 +10922,13 @@ ast-types@0.9.6: resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.6.tgz#102c9e9e9005d3e7e3829bf0c4fa24ee862ee9b9" integrity sha1-ECyenpAF0+fjgpvwxPok7oYu6bk= +ast-types@^0.13.2: + version "0.13.4" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.4.tgz#ee0d77b343263965ecc3fb62da16e7222b2b6782" + integrity sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w== + dependencies: + tslib "^2.0.1" + astral-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" @@ -12436,7 +12443,7 @@ binaryextensions@^4.18.0: resolved "https://registry.yarnpkg.com/binaryextensions/-/binaryextensions-4.18.0.tgz#22aeada2d14de062c60e8ca59a504a5636a76ceb" integrity sha512-PQu3Kyv9dM4FnwB7XGj1+HucW+ShvJzJqjuw1JkKVs1mWdwOKVcRjOi+pV9X52A0tNvrPCsPkbFFQb+wE1EAXw== -bindings@^1.3.0, bindings@^1.5.0: +bindings@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== @@ -13106,11 +13113,16 @@ bytes@3.0.0: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= -bytes@3.1.0, bytes@^3.0.0: +bytes@3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== +bytes@3.1.1, bytes@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.1.tgz#3f018291cb4cbad9accb6e6970bca9c8889e879a" + integrity sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg== + cacache@15.0.5: version "15.0.5" resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.5.tgz#69162833da29170d6732334643c60e005f5f17d0" @@ -16119,7 +16131,7 @@ data-uri-to-buffer@2.0.1: dependencies: "@types/node" "^8.0.7" -data-uri-to-buffer@3.0.1: +data-uri-to-buffer@3, data-uri-to-buffer@3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz#594b8973938c5bc2c33046535785341abc4f3636" integrity sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og== @@ -16463,6 +16475,16 @@ defs@~1.1.0: tryor "~0.1.2" yargs "~3.27.0" +degenerator@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/degenerator/-/degenerator-3.0.1.tgz#7ef78ec0c8577a544477308ddf1d2d6e88d51f5b" + integrity sha512-LFsIFEeLPlKvAKXu7j3ssIG6RT0TbI7/GhsqrI0DnHASEQjXQ0LUSYcjJteGgRGmZbl1TnMSxpNQIAiJ7Du5TQ== + dependencies: + ast-types "^0.13.2" + escodegen "^1.8.1" + esprima "^4.0.0" + vm2 "^3.9.3" + del@3.0.0, del@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5" @@ -18015,7 +18037,7 @@ escodegen@1.8.x: optionalDependencies: source-map "~0.2.0" -escodegen@^1.11.0, escodegen@^1.9.1: +escodegen@^1.11.0, escodegen@^1.8.1, escodegen@^1.9.1: version "1.14.3" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== @@ -18926,6 +18948,11 @@ extend@^3.0.0, extend@~3.0.2: resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== +extend@~2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-2.0.2.tgz#1b74985400171b85554894459c978de6ef453ab7" + integrity sha512-AgFD4VU+lVLP6vjnlNfF7OeInLTyeyckCNPEsuxz1vi786UuK/nk6ynPuhn/h+Ju9++TQyr5EpLRI14fc1QtTQ== + external-editor@^2.0.4: version "2.2.0" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" @@ -19288,6 +19315,11 @@ file-uri-to-path@1.0.0: resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== +file-uri-to-path@2: + version "2.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz#7b415aeba227d575851e0a5b0c640d7656403fba" + integrity sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg== + filelist@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.2.tgz#80202f21462d4d1c2e214119b1807c1bc0380e5b" @@ -20176,6 +20208,14 @@ fsu@^1.0.2: resolved "https://registry.yarnpkg.com/fsu/-/fsu-1.1.1.tgz#bd36d3579907c59d85b257a75b836aa9e0c31834" integrity sha512-xQVsnjJ/5pQtcKh+KjUoZGzVWn4uNkchxTF6Lwjr4Gf7nQr8fmUfhKJ62zE77+xQg9xnxi5KUps7XGs+VC986A== +ftp@^0.3.10: + version "0.3.10" + resolved "https://registry.yarnpkg.com/ftp/-/ftp-0.3.10.tgz#9197d861ad8142f3e63d5a83bfe4c59f7330885d" + integrity sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0= + dependencies: + readable-stream "1.1.x" + xregexp "2.0.0" + function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" @@ -20426,6 +20466,18 @@ get-stream@^6.0.0: resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.0.tgz#3e0012cb6827319da2706e601a1583e8629a6718" integrity sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg== +get-uri@3: + version "3.0.2" + resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-3.0.2.tgz#f0ef1356faabc70e1f9404fa3b66b2ba9bfc725c" + integrity sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg== + dependencies: + "@tootallnate/once" "1" + data-uri-to-buffer "3" + debug "4" + file-uri-to-path "2" + fs-extra "^8.1.0" + ftp "^0.3.10" + get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" @@ -21667,13 +21719,6 @@ hosted-git-info@^4.0.0, hosted-git-info@^4.0.1, hosted-git-info@^4.0.2: dependencies: lru-cache "^6.0.0" -hot-shots@9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/hot-shots/-/hot-shots-9.0.0.tgz#b88421aa81c1ef37f4cc53ade7f1e3daaa584b5e" - integrity sha512-fpljto22PvfzDGznnzUpWgFMgccyZRtWo+fY8R4ktwipkv3ywDyeaTLijYaM629DEZvtnEDAN00yV6zxzivnpQ== - optionalDependencies: - unix-dgram "2.0.x" - hotkeys-js@3.8.2: version "3.8.2" resolved "https://registry.yarnpkg.com/hotkeys-js/-/hotkeys-js-3.8.2.tgz#177c3e7dc19279c881e69983177849bed76e4747" @@ -21916,7 +21961,7 @@ http-errors@1.7.2: statuses ">= 1.5.0 < 2" toidentifier "1.0.0" -http-errors@1.7.3, http-errors@^1.6.3, http-errors@~1.7.2: +http-errors@1.7.3, http-errors@~1.7.2: version "1.7.3" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== @@ -21927,6 +21972,17 @@ http-errors@1.7.3, http-errors@^1.6.3, http-errors@~1.7.2: statuses ">= 1.5.0 < 2" toidentifier "1.0.0" +http-errors@1.8.1, http-errors@^1.6.3: + version "1.8.1" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c" + integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.1" + http-errors@~1.6.2: version "1.6.3" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" @@ -22076,7 +22132,7 @@ https-proxy-agent@3.0.1: agent-base "^4.3.0" debug "^3.1.0" -https-proxy-agent@5.0.0, https-proxy-agent@^5.0.0: +https-proxy-agent@5, https-proxy-agent@5.0.0, https-proxy-agent@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== @@ -25517,6 +25573,15 @@ libcipm@^4.0.8: rimraf "^2.6.2" worker-farm "^1.6.0" +libhoney@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/libhoney/-/libhoney-3.0.0.tgz#33cf6b24f54e15b8ad72a0d6a214805479e13099" + integrity sha512-aAvZblw2ad2iRXrLNk/CnOgQG2Zpt4uuCcVjeC+n/GMsMQRKOGxZ7whI7N4b0oa2aFjsNUQgfwv+xqVMUnO+Mg== + dependencies: + superagent "^6.1.0" + superagent-proxy "^3.0.0" + urljoin "^0.1.5" + libnpm@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/libnpm/-/libnpm-3.0.1.tgz#0be11b4c9dd4d1ffd7d95c786e92e55d65be77a2" @@ -27943,7 +28008,7 @@ mz@^2.4.0, mz@^2.5.0: object-assign "^4.0.1" thenify-all "^1.0.0" -nan@^2.10.0, nan@^2.12.1, nan@^2.13.2: +nan@^2.10.0, nan@^2.12.1: version "2.15.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== @@ -28048,6 +28113,11 @@ nested-error-stacks@^2.0.0, nested-error-stacks@^2.1.0: resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz#0fbdcf3e13fe4994781280524f8b96b0cdff9c61" integrity sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug== +netmask@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/netmask/-/netmask-2.0.2.tgz#8b01a07644065d536383835823bc52004ebac5e7" + integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg== + next-tick@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" @@ -29733,6 +29803,30 @@ p-waterfall@^1.0.0: dependencies: p-reduce "^1.0.0" +pac-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-5.0.0.tgz#b718f76475a6a5415c2efbe256c1c971c84f635e" + integrity sha512-CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ== + dependencies: + "@tootallnate/once" "1" + agent-base "6" + debug "4" + get-uri "3" + http-proxy-agent "^4.0.1" + https-proxy-agent "5" + pac-resolver "^5.0.0" + raw-body "^2.2.0" + socks-proxy-agent "5" + +pac-resolver@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/pac-resolver/-/pac-resolver-5.0.0.tgz#1d717a127b3d7a9407a16d6e1b012b13b9ba8dc0" + integrity sha512-H+/A6KitiHNNW+bxBKREk2MCGSxljfqRX76NjummWEYIat7ldVXRU3dhRIE3iXZ0nvGBk6smv3nntxKkzRL8NA== + dependencies: + degenerator "^3.0.1" + ip "^1.1.5" + netmask "^2.0.1" + package-hash@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/package-hash/-/package-hash-4.0.0.tgz#3537f654665ec3cc38827387fc904c163c54f506" @@ -32034,11 +32128,30 @@ proxy-addr@~2.0.5: forwarded "~0.1.2" ipaddr.js "1.9.1" +proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-5.0.0.tgz#d31405c10d6e8431fde96cba7a0c027ce01d633b" + integrity sha512-gkH7BkvLVkSfX9Dk27W6TyNOWWZWRilRfk1XxGNWOYJ2TuedAv1yFpCaU9QSBmBe716XOTNpYNOzhysyw8xn7g== + dependencies: + agent-base "^6.0.0" + debug "4" + http-proxy-agent "^4.0.0" + https-proxy-agent "^5.0.0" + lru-cache "^5.1.1" + pac-proxy-agent "^5.0.0" + proxy-from-env "^1.0.0" + socks-proxy-agent "^5.0.0" + proxy-from-env@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" integrity sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4= +proxy-from-env@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + proxyquire@2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/proxyquire/-/proxyquire-2.1.3.tgz#2049a7eefa10a9a953346a18e54aab2b4268df39" @@ -32480,6 +32593,16 @@ raw-body@2.4.1: iconv-lite "0.4.24" unpipe "1.0.0" +raw-body@^2.2.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.2.tgz#baf3e9c21eebced59dd6533ac872b71f7b61cb32" + integrity sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ== + dependencies: + bytes "3.1.1" + http-errors "1.8.1" + iconv-lite "0.4.24" + unpipe "1.0.0" + raw-body@~1.1.0: version "1.1.7" resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-1.1.7.tgz#1d027c2bfa116acc6623bca8f00016572a87d425" @@ -35333,6 +35456,11 @@ setprototypeof@1.1.1: resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + sha.js@^2.4.0, sha.js@^2.4.8, sha.js@~2.4.4: version "2.4.11" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" @@ -36023,6 +36151,15 @@ sockjs@^0.3.21: uuid "^3.4.0" websocket-driver "^0.7.4" +socks-proxy-agent@5, socks-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz#032fb583048a29ebffec2e6a73fca0761f48177e" + integrity sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ== + dependencies: + agent-base "^6.0.2" + debug "4" + socks "^2.3.3" + socks-proxy-agent@^4.0.0: version "4.0.2" resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz#3c8991f3145b2799e70e11bd5fbc8b1963116386" @@ -36031,15 +36168,6 @@ socks-proxy-agent@^4.0.0: agent-base "~4.2.1" socks "~2.3.2" -socks-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz#7c0f364e7b1cf4a7a437e71253bed72e9004be60" - integrity sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA== - dependencies: - agent-base "6" - debug "4" - socks "^2.3.3" - socks-proxy-agent@^6.0.0: version "6.1.1" resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz#e664e8f1aaf4e1fb3df945f09e3d94f911137f87" @@ -37124,7 +37252,15 @@ sumchecker@^3.0.1: dependencies: debug "^4.1.0" -superagent@6.1.0: +superagent-proxy@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/superagent-proxy/-/superagent-proxy-3.0.0.tgz#e1a17ccba25883599e18d2974020fe83ee7d95d1" + integrity sha512-wAlRInOeDFyd9pyonrkJspdRAxdLrcsZ6aSnS+8+nu4x1aXbz6FWSTT9M6Ibze+eG60szlL7JA8wEIV7bPWuyQ== + dependencies: + debug "^4.3.2" + proxy-agent "^5.0.0" + +superagent@6.1.0, superagent@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/superagent/-/superagent-6.1.0.tgz#09f08807bc41108ef164cfb4be293cebd480f4a6" integrity sha512-OUDHEssirmplo3F+1HWKUrUjvnQuA+nZI6i/JJBdXb5eq9IyEQwPyPpqND+SSsxf6TygpBEkUjISVRN4/VOpeg== @@ -38054,6 +38190,11 @@ toidentifier@1.0.0: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + token-stream@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/token-stream/-/token-stream-1.0.0.tgz#cc200eab2613f4166d27ff9afc7ca56d49df6eb4" @@ -38954,14 +39095,6 @@ universalify@^2.0.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== -unix-dgram@2.0.x: - version "2.0.4" - resolved "https://registry.yarnpkg.com/unix-dgram/-/unix-dgram-2.0.4.tgz#14d4fc21e539742b8fb027de16eccd4e5503a344" - integrity sha512-7tpK6x7ls7J7pDrrAU63h93R0dVhRbPwiRRCawR10cl+2e1VOvF3bHlVJc6WI1dl/8qk5He673QU+Ogv7bPNaw== - dependencies: - bindings "^1.3.0" - nan "^2.13.2" - unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" @@ -39168,6 +39301,13 @@ url@^0.11.0, url@~0.11.0: punycode "1.3.2" querystring "0.2.0" +urljoin@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/urljoin/-/urljoin-0.1.5.tgz#b25d2c6112c55ac9d50096a49a0f1fb7f4f53921" + integrity sha1-sl0sYRLFWsnVAJakmg8ft/T1OSE= + dependencies: + extend "~2.0.0" + use-callback-ref@^1.2.1, use-callback-ref@^1.2.3: version "1.2.5" resolved "https://registry.yarnpkg.com/use-callback-ref/-/use-callback-ref-1.2.5.tgz#6115ed242cfbaed5915499c0a9842ca2912f38a5" @@ -39820,6 +39960,11 @@ vm-browserify@1.1.2, vm-browserify@^1.0.0, vm-browserify@^1.0.1: resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== +vm2@^3.9.3: + version "3.9.5" + resolved "https://registry.yarnpkg.com/vm2/-/vm2-3.9.5.tgz#5288044860b4bbace443101fcd3bddb2a0aa2496" + integrity sha512-LuCAHZN75H9tdrAiLFf030oW7nJV5xwNMuk1ymOZwopmuK3d2H4L1Kv4+GFHgarKiLfXXLFU+7LDABHnwOkWng== + void-elements@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" @@ -41485,6 +41630,11 @@ xmlhttprequest-ssl@~1.5.4: resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4= +xregexp@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-2.0.0.tgz#52a63e56ca0b84a7f3a5f3d61872f126ad7a5943" + integrity sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM= + xregexp@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.0.0.tgz#e698189de49dd2a18cc5687b05e17c8e43943020" From 0b255f83355d577a80a367f060c6af555b7fbd73 Mon Sep 17 00:00:00 2001 From: BlueWinds Date: Mon, 24 Jan 2022 13:30:44 -0800 Subject: [PATCH 05/10] Remove unecessary circle changes --- circle.yml | 4 ---- yarn.lock | 10 +--------- 2 files changed, 1 insertion(+), 13 deletions(-) diff --git a/circle.yml b/circle.yml index 0a410f362538..27c405d56e36 100644 --- a/circle.yml +++ b/circle.yml @@ -508,10 +508,6 @@ commands: done SPECS=`echo $SPECS | xargs -n 1 | circleci tests split --split-by=timings` echo SPECS=$SPECS - if [[ "<>" =~ ^(develop|10.0-release|issue-19403-performance-tests)$ ]]; then - echo "Recording test timings" - CYPRESS_STATSD_TIMINGS=1 - fi yarn workspace @tooling/system-tests test:ci $SPECS --browser <> - verify-mocha-results - store_test_results: diff --git a/yarn.lock b/yarn.lock index b6c9d2ce9f0b..1804c5702029 100644 --- a/yarn.lock +++ b/yarn.lock @@ -25277,7 +25277,7 @@ launch-editor-middleware@^2.2.1: dependencies: launch-editor "^2.2.1" -launch-editor@2.3.0: +launch-editor@2.3.0, launch-editor@^2.2.1: version "2.3.0" resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.3.0.tgz#23b2081403b7eeaae2918bda510f3535ccab0ee4" integrity sha512-3QrsCXejlWYHjBPFXTyGNhPj4rrQdB+5+r5r3wArpLH201aR+nWUgw/zKKkTmilCfY/sv6u8qo98pNvtg8LUTA== @@ -25285,14 +25285,6 @@ launch-editor@2.3.0: picocolors "^1.0.0" shell-quote "^1.6.1" -launch-editor@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.2.1.tgz#871b5a3ee39d6680fcc26d37930b6eeda89db0ca" - integrity sha512-On+V7K2uZK6wK7x691ycSUbLD/FyKKelArkbaAMSSJU8JmqmhwN2+mnJDNINuJWSrh2L0kDk+ZQtbC/gOWUwLw== - dependencies: - chalk "^2.3.0" - shell-quote "^1.6.1" - lazy-ass@1.6.0, lazy-ass@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" From 2762ab267a2ecfee9ab37a22357e9d121b6f71bf Mon Sep 17 00:00:00 2001 From: BlueWinds Date: Tue, 25 Jan 2022 14:41:33 -0800 Subject: [PATCH 06/10] Move away from libhoney, use performance reporter only for system tests --- mocha-reporter-config.json | 2 +- system-tests/lib/performance-reporter.js | 82 +++---- system-tests/lib/system-tests.ts | 6 - system-tests/package.json | 1 - .../scripts/mocha-reporter-config.json | 6 + system-tests/scripts/run.js | 2 +- yarn.lock | 213 +++--------------- 7 files changed, 78 insertions(+), 234 deletions(-) create mode 100644 system-tests/scripts/mocha-reporter-config.json diff --git a/mocha-reporter-config.json b/mocha-reporter-config.json index 38bd780a500d..03a3455db100 100644 --- a/mocha-reporter-config.json +++ b/mocha-reporter-config.json @@ -1,5 +1,5 @@ { - "reporterEnabled": "../../system-tests/lib/performance-reporter.js, mocha-junit-reporter", + "reporterEnabled": "spec, mocha-junit-reporter", "mochaJunitReporterReporterOptions": { "mochaFile": "/tmp/cypress/junit/test-results.[hash].xml" } diff --git a/system-tests/lib/performance-reporter.js b/system-tests/lib/performance-reporter.js index d6c555abe9b4..a4b42e11239a 100644 --- a/system-tests/lib/performance-reporter.js +++ b/system-tests/lib/performance-reporter.js @@ -1,65 +1,67 @@ const path = require('path') -const mochaReporters = require('mocha-7.0.1/lib/reporters') -const Libhoney = require('libhoney') const pkg = require('@packages/root') +const rp = require('@cypress/request-promise') const ciProvider = require('@packages/server/lib/util/ci_provider') const { commitInfo } = require('@cypress/commit-info') -class StatsdReporter extends mochaReporters.Spec { +const dataset = 'systemtest-performance' +const writeKey = '531a9eae0fcdde85b2ebccbe2b79e83c' + +class StatsdReporter { constructor (runner) { - super(runner) - if (process.env.CIRCLECI) { - console.log('Reporting results to honeycomb') + if (!process.env.CIRCLECI) { + return + } - this.hny = new Libhoney({ - writeKey: '531a9eae0fcdde85b2ebccbe2b79e83c', - dataset: 'systemtest-performance', - }) + console.log('Reporting to honeycomb') + + runner.on('test', (test) => { + test.wallclockStart = Date.now() + }) - runner.on('test', (test) => { - test.honeycombEvent = this.hny.newEvent() - test.honeycombEvent.timestamp = Date.now() + runner.on('test end', (test, done) => { + // Skipped tests never get a 'start' event, but they still get 'test end' somehow. + if (test.state === 'skipped') { + return + } - commitInfo().then((commitInformation) => { - const ciInformation = ciProvider.commitParams() || {} + commitInfo().then((commitInformation) => { + const ciInformation = ciProvider.commitParams() || {} + const [, testTitle, browser] = test.title.match(/(.+?)(?: \[([a-z]+)\])?$/) - test.honeycombEvent.add({ + const body = [{ + time: new Date(), + samplerate: 1, + data: { + durationMs: Date.now() - test.wallclockStart, + mochaDurationMs: test.duration, + state: test.state, specFile: path.basename(test.file), - test: test.title, + test: testTitle, + browser, branch: commitInformation.branch || ciInformation.branch, commitSha: commitInformation.sha || ciInformation.sha, buildUrl: process.env.CIRCLE_BUILD_URL, platform: process.platform, arch: process.arch, version: pkg.version, - }) - }) - }) + }, + }] - runner.on('test end', (test, done) => { - // Skipped tests never get a 'start' event, but they still get 'test end' somehow. - if (test.honeycombEvent) { - test.honeycombEvent.add({ - // This is slightly longer than mocha's reported time - durationMs: Date.now() - test.honeycombEvent.timestamp, - mochaDurationMs: test.duration, - state: test.state, - }) - - test.honeycombEvent.send() - } - }) - - runner.on('end', () => { - console.log('ending!') + rp.post({ + url: `https://api.honeycomb.io/1/batch/${dataset}`, + json: true, + headers: { 'X-Honeycomb-Team': writeKey }, + body, + timeout: 5000, + }) }) - } + }) } - done (failures, callback) { - this.hny.flush().then(callback) - } + // If there is no done callback, then mocha-multi-reporter will kill the process without waiting for our honeycomb post to complete. + done (failures, callback) {} } module.exports = StatsdReporter diff --git a/system-tests/lib/system-tests.ts b/system-tests/lib/system-tests.ts index fe6a41b71b0e..9f663cbf1c35 100644 --- a/system-tests/lib/system-tests.ts +++ b/system-tests/lib/system-tests.ts @@ -605,12 +605,6 @@ const localItFn = function (title: string, opts: ItOptions) { const testTitle = `${title} [${browser}]` return mochaItFn(testTitle, function () { - if (this.test.honeycombEvent) { - this.test.honeycombEvent.add({ - browser, - }) - } - if (options.useSeparateBrowserSnapshots) { title = testTitle } diff --git a/system-tests/package.json b/system-tests/package.json index 0975359f95ed..57c202776b78 100644 --- a/system-tests/package.json +++ b/system-tests/package.json @@ -55,7 +55,6 @@ "human-interval": "1.0.0", "image-size": "0.8.3", "lazy-ass": "1.6.0", - "libhoney": "3.0.0", "lodash": "^4.17.21", "mocha": "7.1.0", "mocha-banner": "1.1.2", diff --git a/system-tests/scripts/mocha-reporter-config.json b/system-tests/scripts/mocha-reporter-config.json new file mode 100644 index 000000000000..f7a0ee275adc --- /dev/null +++ b/system-tests/scripts/mocha-reporter-config.json @@ -0,0 +1,6 @@ +{ + "reporterEnabled": "spec, mocha-junit-reporter, ../../system-tests/lib/performance-reporter.js", + "mochaJunitReporterReporterOptions": { + "mochaFile": "/tmp/cypress/junit/test-results.[hash].xml" + } +} diff --git a/system-tests/scripts/run.js b/system-tests/scripts/run.js index 1d32fd0196be..3edd02d17d77 100644 --- a/system-tests/scripts/run.js +++ b/system-tests/scripts/run.js @@ -109,7 +109,7 @@ commandAndArguments.args.push( '--reporter', 'mocha-multi-reporters', '--reporter-options', - 'configFile=../../mocha-reporter-config.json', + 'configFile=../../system-tests/scripts/mocha-reporter-config.json', '--extension=js,ts', // restore mocha 2.x behavior to force end process after spec run '--exit', diff --git a/yarn.lock b/yarn.lock index fa5d1681c273..ff6f79aa9e24 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9976,7 +9976,7 @@ agent-base@4, agent-base@^4.3.0: dependencies: es6-promisify "^5.0.0" -agent-base@6, agent-base@^6.0.0, agent-base@^6.0.2: +agent-base@6, agent-base@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== @@ -10914,13 +10914,6 @@ ast-types@0.9.6: resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.6.tgz#102c9e9e9005d3e7e3829bf0c4fa24ee862ee9b9" integrity sha1-ECyenpAF0+fjgpvwxPok7oYu6bk= -ast-types@^0.13.2: - version "0.13.4" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.4.tgz#ee0d77b343263965ecc3fb62da16e7222b2b6782" - integrity sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w== - dependencies: - tslib "^2.0.1" - astral-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" @@ -13105,16 +13098,11 @@ bytes@3.0.0: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= -bytes@3.1.0: +bytes@3.1.0, bytes@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== -bytes@3.1.1, bytes@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.1.tgz#3f018291cb4cbad9accb6e6970bca9c8889e879a" - integrity sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg== - cacache@15.0.5: version "15.0.5" resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.5.tgz#69162833da29170d6732334643c60e005f5f17d0" @@ -16123,7 +16111,7 @@ data-uri-to-buffer@2.0.1: dependencies: "@types/node" "^8.0.7" -data-uri-to-buffer@3, data-uri-to-buffer@3.0.1: +data-uri-to-buffer@3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz#594b8973938c5bc2c33046535785341abc4f3636" integrity sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og== @@ -16467,16 +16455,6 @@ defs@~1.1.0: tryor "~0.1.2" yargs "~3.27.0" -degenerator@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/degenerator/-/degenerator-3.0.1.tgz#7ef78ec0c8577a544477308ddf1d2d6e88d51f5b" - integrity sha512-LFsIFEeLPlKvAKXu7j3ssIG6RT0TbI7/GhsqrI0DnHASEQjXQ0LUSYcjJteGgRGmZbl1TnMSxpNQIAiJ7Du5TQ== - dependencies: - ast-types "^0.13.2" - escodegen "^1.8.1" - esprima "^4.0.0" - vm2 "^3.9.3" - del@3.0.0, del@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5" @@ -18042,7 +18020,7 @@ escodegen@1.8.x: optionalDependencies: source-map "~0.2.0" -escodegen@^1.11.0, escodegen@^1.8.1, escodegen@^1.9.1: +escodegen@^1.11.0, escodegen@^1.9.1: version "1.14.3" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== @@ -18953,11 +18931,6 @@ extend@^3.0.0, extend@~3.0.2: resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== -extend@~2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-2.0.2.tgz#1b74985400171b85554894459c978de6ef453ab7" - integrity sha512-AgFD4VU+lVLP6vjnlNfF7OeInLTyeyckCNPEsuxz1vi786UuK/nk6ynPuhn/h+Ju9++TQyr5EpLRI14fc1QtTQ== - external-editor@^2.0.4: version "2.2.0" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" @@ -19320,11 +19293,6 @@ file-uri-to-path@1.0.0: resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== -file-uri-to-path@2: - version "2.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz#7b415aeba227d575851e0a5b0c640d7656403fba" - integrity sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg== - filelist@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.2.tgz#80202f21462d4d1c2e214119b1807c1bc0380e5b" @@ -20213,14 +20181,6 @@ fsu@^1.0.2: resolved "https://registry.yarnpkg.com/fsu/-/fsu-1.1.1.tgz#bd36d3579907c59d85b257a75b836aa9e0c31834" integrity sha512-xQVsnjJ/5pQtcKh+KjUoZGzVWn4uNkchxTF6Lwjr4Gf7nQr8fmUfhKJ62zE77+xQg9xnxi5KUps7XGs+VC986A== -ftp@^0.3.10: - version "0.3.10" - resolved "https://registry.yarnpkg.com/ftp/-/ftp-0.3.10.tgz#9197d861ad8142f3e63d5a83bfe4c59f7330885d" - integrity sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0= - dependencies: - readable-stream "1.1.x" - xregexp "2.0.0" - function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" @@ -20471,18 +20431,6 @@ get-stream@^6.0.0: resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.0.tgz#3e0012cb6827319da2706e601a1583e8629a6718" integrity sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg== -get-uri@3: - version "3.0.2" - resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-3.0.2.tgz#f0ef1356faabc70e1f9404fa3b66b2ba9bfc725c" - integrity sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg== - dependencies: - "@tootallnate/once" "1" - data-uri-to-buffer "3" - debug "4" - file-uri-to-path "2" - fs-extra "^8.1.0" - ftp "^0.3.10" - get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" @@ -21961,7 +21909,7 @@ http-errors@1.7.2: statuses ">= 1.5.0 < 2" toidentifier "1.0.0" -http-errors@1.7.3, http-errors@~1.7.2: +http-errors@1.7.3, http-errors@^1.6.3, http-errors@~1.7.2: version "1.7.3" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== @@ -21972,17 +21920,6 @@ http-errors@1.7.3, http-errors@~1.7.2: statuses ">= 1.5.0 < 2" toidentifier "1.0.0" -http-errors@1.8.1, http-errors@^1.6.3: - version "1.8.1" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c" - integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.1" - http-errors@~1.6.2: version "1.6.3" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" @@ -22132,7 +22069,7 @@ https-proxy-agent@3.0.1: agent-base "^4.3.0" debug "^3.1.0" -https-proxy-agent@5, https-proxy-agent@5.0.0, https-proxy-agent@^5.0.0: +https-proxy-agent@5.0.0, https-proxy-agent@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== @@ -25290,7 +25227,7 @@ launch-editor-middleware@^2.2.1: dependencies: launch-editor "^2.2.1" -launch-editor@2.3.0, launch-editor@^2.2.1: +launch-editor@2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.3.0.tgz#23b2081403b7eeaae2918bda510f3535ccab0ee4" integrity sha512-3QrsCXejlWYHjBPFXTyGNhPj4rrQdB+5+r5r3wArpLH201aR+nWUgw/zKKkTmilCfY/sv6u8qo98pNvtg8LUTA== @@ -25298,6 +25235,14 @@ launch-editor@2.3.0, launch-editor@^2.2.1: picocolors "^1.0.0" shell-quote "^1.6.1" +launch-editor@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.2.1.tgz#871b5a3ee39d6680fcc26d37930b6eeda89db0ca" + integrity sha512-On+V7K2uZK6wK7x691ycSUbLD/FyKKelArkbaAMSSJU8JmqmhwN2+mnJDNINuJWSrh2L0kDk+ZQtbC/gOWUwLw== + dependencies: + chalk "^2.3.0" + shell-quote "^1.6.1" + lazy-ass@1.6.0, lazy-ass@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" @@ -25573,15 +25518,6 @@ libcipm@^4.0.8: rimraf "^2.6.2" worker-farm "^1.6.0" -libhoney@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/libhoney/-/libhoney-3.0.0.tgz#33cf6b24f54e15b8ad72a0d6a214805479e13099" - integrity sha512-aAvZblw2ad2iRXrLNk/CnOgQG2Zpt4uuCcVjeC+n/GMsMQRKOGxZ7whI7N4b0oa2aFjsNUQgfwv+xqVMUnO+Mg== - dependencies: - superagent "^6.1.0" - superagent-proxy "^3.0.0" - urljoin "^0.1.5" - libnpm@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/libnpm/-/libnpm-3.0.1.tgz#0be11b4c9dd4d1ffd7d95c786e92e55d65be77a2" @@ -28009,9 +27945,9 @@ mz@^2.4.0, mz@^2.5.0: thenify-all "^1.0.0" nan@^2.10.0, nan@^2.12.1: - version "2.15.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" - integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== + version "2.14.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" + integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== nanoid@3.1.20: version "3.1.20" @@ -28113,11 +28049,6 @@ nested-error-stacks@^2.0.0, nested-error-stacks@^2.1.0: resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz#0fbdcf3e13fe4994781280524f8b96b0cdff9c61" integrity sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug== -netmask@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/netmask/-/netmask-2.0.2.tgz#8b01a07644065d536383835823bc52004ebac5e7" - integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg== - next-tick@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" @@ -29808,30 +29739,6 @@ p-waterfall@^1.0.0: dependencies: p-reduce "^1.0.0" -pac-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-5.0.0.tgz#b718f76475a6a5415c2efbe256c1c971c84f635e" - integrity sha512-CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ== - dependencies: - "@tootallnate/once" "1" - agent-base "6" - debug "4" - get-uri "3" - http-proxy-agent "^4.0.1" - https-proxy-agent "5" - pac-resolver "^5.0.0" - raw-body "^2.2.0" - socks-proxy-agent "5" - -pac-resolver@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/pac-resolver/-/pac-resolver-5.0.0.tgz#1d717a127b3d7a9407a16d6e1b012b13b9ba8dc0" - integrity sha512-H+/A6KitiHNNW+bxBKREk2MCGSxljfqRX76NjummWEYIat7ldVXRU3dhRIE3iXZ0nvGBk6smv3nntxKkzRL8NA== - dependencies: - degenerator "^3.0.1" - ip "^1.1.5" - netmask "^2.0.1" - package-hash@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/package-hash/-/package-hash-4.0.0.tgz#3537f654665ec3cc38827387fc904c163c54f506" @@ -32138,30 +32045,11 @@ proxy-addr@~2.0.5: forwarded "~0.1.2" ipaddr.js "1.9.1" -proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-5.0.0.tgz#d31405c10d6e8431fde96cba7a0c027ce01d633b" - integrity sha512-gkH7BkvLVkSfX9Dk27W6TyNOWWZWRilRfk1XxGNWOYJ2TuedAv1yFpCaU9QSBmBe716XOTNpYNOzhysyw8xn7g== - dependencies: - agent-base "^6.0.0" - debug "4" - http-proxy-agent "^4.0.0" - https-proxy-agent "^5.0.0" - lru-cache "^5.1.1" - pac-proxy-agent "^5.0.0" - proxy-from-env "^1.0.0" - socks-proxy-agent "^5.0.0" - proxy-from-env@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" integrity sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4= -proxy-from-env@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" - integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== - proxyquire@2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/proxyquire/-/proxyquire-2.1.3.tgz#2049a7eefa10a9a953346a18e54aab2b4268df39" @@ -32603,16 +32491,6 @@ raw-body@2.4.1: iconv-lite "0.4.24" unpipe "1.0.0" -raw-body@^2.2.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.2.tgz#baf3e9c21eebced59dd6533ac872b71f7b61cb32" - integrity sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ== - dependencies: - bytes "3.1.1" - http-errors "1.8.1" - iconv-lite "0.4.24" - unpipe "1.0.0" - raw-body@~1.1.0: version "1.1.7" resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-1.1.7.tgz#1d027c2bfa116acc6623bca8f00016572a87d425" @@ -35466,11 +35344,6 @@ setprototypeof@1.1.1: resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== -setprototypeof@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" - integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== - sha.js@^2.4.0, sha.js@^2.4.8, sha.js@~2.4.4: version "2.4.11" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" @@ -36161,15 +36034,6 @@ sockjs@^0.3.21: uuid "^3.4.0" websocket-driver "^0.7.4" -socks-proxy-agent@5, socks-proxy-agent@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz#032fb583048a29ebffec2e6a73fca0761f48177e" - integrity sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ== - dependencies: - agent-base "^6.0.2" - debug "4" - socks "^2.3.3" - socks-proxy-agent@^4.0.0: version "4.0.2" resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz#3c8991f3145b2799e70e11bd5fbc8b1963116386" @@ -36178,6 +36042,15 @@ socks-proxy-agent@^4.0.0: agent-base "~4.2.1" socks "~2.3.2" +socks-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz#7c0f364e7b1cf4a7a437e71253bed72e9004be60" + integrity sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA== + dependencies: + agent-base "6" + debug "4" + socks "^2.3.3" + socks-proxy-agent@^6.0.0: version "6.1.1" resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz#e664e8f1aaf4e1fb3df945f09e3d94f911137f87" @@ -37262,15 +37135,7 @@ sumchecker@^3.0.1: dependencies: debug "^4.1.0" -superagent-proxy@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/superagent-proxy/-/superagent-proxy-3.0.0.tgz#e1a17ccba25883599e18d2974020fe83ee7d95d1" - integrity sha512-wAlRInOeDFyd9pyonrkJspdRAxdLrcsZ6aSnS+8+nu4x1aXbz6FWSTT9M6Ibze+eG60szlL7JA8wEIV7bPWuyQ== - dependencies: - debug "^4.3.2" - proxy-agent "^5.0.0" - -superagent@6.1.0, superagent@^6.1.0: +superagent@6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/superagent/-/superagent-6.1.0.tgz#09f08807bc41108ef164cfb4be293cebd480f4a6" integrity sha512-OUDHEssirmplo3F+1HWKUrUjvnQuA+nZI6i/JJBdXb5eq9IyEQwPyPpqND+SSsxf6TygpBEkUjISVRN4/VOpeg== @@ -38200,11 +38065,6 @@ toidentifier@1.0.0: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== -toidentifier@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" - integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== - token-stream@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/token-stream/-/token-stream-1.0.0.tgz#cc200eab2613f4166d27ff9afc7ca56d49df6eb4" @@ -39311,13 +39171,6 @@ url@^0.11.0, url@~0.11.0: punycode "1.3.2" querystring "0.2.0" -urljoin@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/urljoin/-/urljoin-0.1.5.tgz#b25d2c6112c55ac9d50096a49a0f1fb7f4f53921" - integrity sha1-sl0sYRLFWsnVAJakmg8ft/T1OSE= - dependencies: - extend "~2.0.0" - use-callback-ref@^1.2.1, use-callback-ref@^1.2.3: version "1.2.5" resolved "https://registry.yarnpkg.com/use-callback-ref/-/use-callback-ref-1.2.5.tgz#6115ed242cfbaed5915499c0a9842ca2912f38a5" @@ -39970,11 +39823,6 @@ vm-browserify@1.1.2, vm-browserify@^1.0.0, vm-browserify@^1.0.1: resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== -vm2@^3.9.3: - version "3.9.5" - resolved "https://registry.yarnpkg.com/vm2/-/vm2-3.9.5.tgz#5288044860b4bbace443101fcd3bddb2a0aa2496" - integrity sha512-LuCAHZN75H9tdrAiLFf030oW7nJV5xwNMuk1ymOZwopmuK3d2H4L1Kv4+GFHgarKiLfXXLFU+7LDABHnwOkWng== - void-elements@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" @@ -41640,11 +41488,6 @@ xmlhttprequest-ssl@~1.5.4: resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4= -xregexp@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-2.0.0.tgz#52a63e56ca0b84a7f3a5f3d61872f126ad7a5943" - integrity sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM= - xregexp@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.0.0.tgz#e698189de49dd2a18cc5687b05e17c8e43943020" From 8b1fab1ae26c04254610cc4f212e2d5d61eab66b Mon Sep 17 00:00:00 2001 From: BlueWinds Date: Wed, 26 Jan 2022 09:40:51 -0800 Subject: [PATCH 07/10] Back to libhoney, pull honeycomb API key from env --- circle.yml | 4 + packages/server/package.json | 1 + system-tests/lib/performance-reporter.js | 61 ++++--- system-tests/package.json | 1 + yarn.lock | 207 ++++++++++++++++++++--- 5 files changed, 217 insertions(+), 57 deletions(-) diff --git a/circle.yml b/circle.yml index 27c405d56e36..4f8b02cd804a 100644 --- a/circle.yml +++ b/circle.yml @@ -2088,15 +2088,19 @@ linux-workflow: &linux-workflow requires: - build - system-tests-chrome: + context: test-runner:performance-tracking requires: - system-tests-node-modules-install - system-tests-electron: + context: test-runner:performance-tracking requires: - system-tests-node-modules-install - system-tests-firefox: + context: test-runner:performance-tracking requires: - system-tests-node-modules-install - system-tests-non-root: + context: test-runner:performance-tracking executor: non-root-docker-user requires: - system-tests-node-modules-install diff --git a/packages/server/package.json b/packages/server/package.json index 834b4ded0e6a..45b1dc1fdda4 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -147,6 +147,7 @@ "@types/chai-as-promised": "7.1.2", "@types/chrome": "0.0.101", "@types/http-proxy": "1.17.4", + "@types/node": "14.14.31", "awesome-typescript-loader": "5.2.1", "babel-loader": "8.1.0", "body-parser": "1.19.0", diff --git a/system-tests/lib/performance-reporter.js b/system-tests/lib/performance-reporter.js index a4b42e11239a..116dc027ebf5 100644 --- a/system-tests/lib/performance-reporter.js +++ b/system-tests/lib/performance-reporter.js @@ -1,20 +1,22 @@ const path = require('path') -const pkg = require('@packages/root') -const rp = require('@cypress/request-promise') +const chalk = require('chalk') +const Libhoney = require('libhoney') +const pkg = require('@packages/root') const ciProvider = require('@packages/server/lib/util/ci_provider') const { commitInfo } = require('@cypress/commit-info') -const dataset = 'systemtest-performance' -const writeKey = '531a9eae0fcdde85b2ebccbe2b79e83c' - class StatsdReporter { constructor (runner) { - if (!process.env.CIRCLECI) { + if (!process.env.HONEYCOMB_API_KEY) { return } - console.log('Reporting to honeycomb') + console.log(chalk.green('Reporting to honeycomb')) + this.honey = new Libhoney({ + dataset: 'systemtest-performance', + writeKey: process.env.HONEYCOMB_API_KEY, + }) runner.on('test', (test) => { test.wallclockStart = Date.now() @@ -30,38 +32,33 @@ class StatsdReporter { const ciInformation = ciProvider.commitParams() || {} const [, testTitle, browser] = test.title.match(/(.+?)(?: \[([a-z]+)\])?$/) - const body = [{ - time: new Date(), - samplerate: 1, - data: { - durationMs: Date.now() - test.wallclockStart, - mochaDurationMs: test.duration, - state: test.state, - specFile: path.basename(test.file), - test: testTitle, - browser, - branch: commitInformation.branch || ciInformation.branch, - commitSha: commitInformation.sha || ciInformation.sha, - buildUrl: process.env.CIRCLE_BUILD_URL, - platform: process.platform, - arch: process.arch, - version: pkg.version, - }, - }] + const honeycombEvent = this.honey.newEvent() - rp.post({ - url: `https://api.honeycomb.io/1/batch/${dataset}`, - json: true, - headers: { 'X-Honeycomb-Team': writeKey }, - body, - timeout: 5000, + honeycombEvent.timestamp = test.wallclockStart + honeycombEvent.add({ + test: testTitle, + specFile: path.basename(test.file), + browser, + state: test.state, + durationMs: Date.now() - test.wallclockStart, + mochaDurationMs: test.duration, + branch: commitInformation.branch || ciInformation.branch, + commitSha: commitInformation.sha || ciInformation.sha, + buildUrl: process.env.CIRCLE_BUILD_URL, + platform: process.platform, + arch: process.arch, + version: pkg.version, }) + + honeycombEvent.send() }) }) } // If there is no done callback, then mocha-multi-reporter will kill the process without waiting for our honeycomb post to complete. - done (failures, callback) {} + done (failures, callback) { + this.honey.flush().then(callback) + } } module.exports = StatsdReporter diff --git a/system-tests/package.json b/system-tests/package.json index 57c202776b78..0975359f95ed 100644 --- a/system-tests/package.json +++ b/system-tests/package.json @@ -55,6 +55,7 @@ "human-interval": "1.0.0", "image-size": "0.8.3", "lazy-ass": "1.6.0", + "libhoney": "3.0.0", "lodash": "^4.17.21", "mocha": "7.1.0", "mocha-banner": "1.1.2", diff --git a/yarn.lock b/yarn.lock index ff6f79aa9e24..43bcb56d1859 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9976,7 +9976,7 @@ agent-base@4, agent-base@^4.3.0: dependencies: es6-promisify "^5.0.0" -agent-base@6, agent-base@^6.0.2: +agent-base@6, agent-base@^6.0.0, agent-base@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== @@ -10914,6 +10914,13 @@ ast-types@0.9.6: resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.6.tgz#102c9e9e9005d3e7e3829bf0c4fa24ee862ee9b9" integrity sha1-ECyenpAF0+fjgpvwxPok7oYu6bk= +ast-types@^0.13.2: + version "0.13.4" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.4.tgz#ee0d77b343263965ecc3fb62da16e7222b2b6782" + integrity sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w== + dependencies: + tslib "^2.0.1" + astral-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" @@ -13098,11 +13105,16 @@ bytes@3.0.0: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= -bytes@3.1.0, bytes@^3.0.0: +bytes@3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== +bytes@3.1.1, bytes@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.1.tgz#3f018291cb4cbad9accb6e6970bca9c8889e879a" + integrity sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg== + cacache@15.0.5: version "15.0.5" resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.5.tgz#69162833da29170d6732334643c60e005f5f17d0" @@ -16111,7 +16123,7 @@ data-uri-to-buffer@2.0.1: dependencies: "@types/node" "^8.0.7" -data-uri-to-buffer@3.0.1: +data-uri-to-buffer@3, data-uri-to-buffer@3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz#594b8973938c5bc2c33046535785341abc4f3636" integrity sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og== @@ -16455,6 +16467,16 @@ defs@~1.1.0: tryor "~0.1.2" yargs "~3.27.0" +degenerator@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/degenerator/-/degenerator-3.0.1.tgz#7ef78ec0c8577a544477308ddf1d2d6e88d51f5b" + integrity sha512-LFsIFEeLPlKvAKXu7j3ssIG6RT0TbI7/GhsqrI0DnHASEQjXQ0LUSYcjJteGgRGmZbl1TnMSxpNQIAiJ7Du5TQ== + dependencies: + ast-types "^0.13.2" + escodegen "^1.8.1" + esprima "^4.0.0" + vm2 "^3.9.3" + del@3.0.0, del@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5" @@ -18020,7 +18042,7 @@ escodegen@1.8.x: optionalDependencies: source-map "~0.2.0" -escodegen@^1.11.0, escodegen@^1.9.1: +escodegen@^1.11.0, escodegen@^1.8.1, escodegen@^1.9.1: version "1.14.3" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== @@ -18931,6 +18953,11 @@ extend@^3.0.0, extend@~3.0.2: resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== +extend@~2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-2.0.2.tgz#1b74985400171b85554894459c978de6ef453ab7" + integrity sha512-AgFD4VU+lVLP6vjnlNfF7OeInLTyeyckCNPEsuxz1vi786UuK/nk6ynPuhn/h+Ju9++TQyr5EpLRI14fc1QtTQ== + external-editor@^2.0.4: version "2.2.0" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" @@ -19293,6 +19320,11 @@ file-uri-to-path@1.0.0: resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== +file-uri-to-path@2: + version "2.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz#7b415aeba227d575851e0a5b0c640d7656403fba" + integrity sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg== + filelist@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.2.tgz#80202f21462d4d1c2e214119b1807c1bc0380e5b" @@ -20181,6 +20213,14 @@ fsu@^1.0.2: resolved "https://registry.yarnpkg.com/fsu/-/fsu-1.1.1.tgz#bd36d3579907c59d85b257a75b836aa9e0c31834" integrity sha512-xQVsnjJ/5pQtcKh+KjUoZGzVWn4uNkchxTF6Lwjr4Gf7nQr8fmUfhKJ62zE77+xQg9xnxi5KUps7XGs+VC986A== +ftp@^0.3.10: + version "0.3.10" + resolved "https://registry.yarnpkg.com/ftp/-/ftp-0.3.10.tgz#9197d861ad8142f3e63d5a83bfe4c59f7330885d" + integrity sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0= + dependencies: + readable-stream "1.1.x" + xregexp "2.0.0" + function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" @@ -20431,6 +20471,18 @@ get-stream@^6.0.0: resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.0.tgz#3e0012cb6827319da2706e601a1583e8629a6718" integrity sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg== +get-uri@3: + version "3.0.2" + resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-3.0.2.tgz#f0ef1356faabc70e1f9404fa3b66b2ba9bfc725c" + integrity sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg== + dependencies: + "@tootallnate/once" "1" + data-uri-to-buffer "3" + debug "4" + file-uri-to-path "2" + fs-extra "^8.1.0" + ftp "^0.3.10" + get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" @@ -21909,7 +21961,7 @@ http-errors@1.7.2: statuses ">= 1.5.0 < 2" toidentifier "1.0.0" -http-errors@1.7.3, http-errors@^1.6.3, http-errors@~1.7.2: +http-errors@1.7.3, http-errors@~1.7.2: version "1.7.3" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== @@ -21920,6 +21972,17 @@ http-errors@1.7.3, http-errors@^1.6.3, http-errors@~1.7.2: statuses ">= 1.5.0 < 2" toidentifier "1.0.0" +http-errors@1.8.1, http-errors@^1.6.3: + version "1.8.1" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c" + integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.1" + http-errors@~1.6.2: version "1.6.3" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" @@ -22069,7 +22132,7 @@ https-proxy-agent@3.0.1: agent-base "^4.3.0" debug "^3.1.0" -https-proxy-agent@5.0.0, https-proxy-agent@^5.0.0: +https-proxy-agent@5, https-proxy-agent@5.0.0, https-proxy-agent@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== @@ -25227,7 +25290,7 @@ launch-editor-middleware@^2.2.1: dependencies: launch-editor "^2.2.1" -launch-editor@2.3.0: +launch-editor@2.3.0, launch-editor@^2.2.1: version "2.3.0" resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.3.0.tgz#23b2081403b7eeaae2918bda510f3535ccab0ee4" integrity sha512-3QrsCXejlWYHjBPFXTyGNhPj4rrQdB+5+r5r3wArpLH201aR+nWUgw/zKKkTmilCfY/sv6u8qo98pNvtg8LUTA== @@ -25235,14 +25298,6 @@ launch-editor@2.3.0: picocolors "^1.0.0" shell-quote "^1.6.1" -launch-editor@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.2.1.tgz#871b5a3ee39d6680fcc26d37930b6eeda89db0ca" - integrity sha512-On+V7K2uZK6wK7x691ycSUbLD/FyKKelArkbaAMSSJU8JmqmhwN2+mnJDNINuJWSrh2L0kDk+ZQtbC/gOWUwLw== - dependencies: - chalk "^2.3.0" - shell-quote "^1.6.1" - lazy-ass@1.6.0, lazy-ass@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" @@ -25518,6 +25573,15 @@ libcipm@^4.0.8: rimraf "^2.6.2" worker-farm "^1.6.0" +libhoney@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/libhoney/-/libhoney-3.0.0.tgz#33cf6b24f54e15b8ad72a0d6a214805479e13099" + integrity sha512-aAvZblw2ad2iRXrLNk/CnOgQG2Zpt4uuCcVjeC+n/GMsMQRKOGxZ7whI7N4b0oa2aFjsNUQgfwv+xqVMUnO+Mg== + dependencies: + superagent "^6.1.0" + superagent-proxy "^3.0.0" + urljoin "^0.1.5" + libnpm@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/libnpm/-/libnpm-3.0.1.tgz#0be11b4c9dd4d1ffd7d95c786e92e55d65be77a2" @@ -28049,6 +28113,11 @@ nested-error-stacks@^2.0.0, nested-error-stacks@^2.1.0: resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz#0fbdcf3e13fe4994781280524f8b96b0cdff9c61" integrity sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug== +netmask@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/netmask/-/netmask-2.0.2.tgz#8b01a07644065d536383835823bc52004ebac5e7" + integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg== + next-tick@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" @@ -29739,6 +29808,30 @@ p-waterfall@^1.0.0: dependencies: p-reduce "^1.0.0" +pac-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-5.0.0.tgz#b718f76475a6a5415c2efbe256c1c971c84f635e" + integrity sha512-CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ== + dependencies: + "@tootallnate/once" "1" + agent-base "6" + debug "4" + get-uri "3" + http-proxy-agent "^4.0.1" + https-proxy-agent "5" + pac-resolver "^5.0.0" + raw-body "^2.2.0" + socks-proxy-agent "5" + +pac-resolver@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/pac-resolver/-/pac-resolver-5.0.0.tgz#1d717a127b3d7a9407a16d6e1b012b13b9ba8dc0" + integrity sha512-H+/A6KitiHNNW+bxBKREk2MCGSxljfqRX76NjummWEYIat7ldVXRU3dhRIE3iXZ0nvGBk6smv3nntxKkzRL8NA== + dependencies: + degenerator "^3.0.1" + ip "^1.1.5" + netmask "^2.0.1" + package-hash@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/package-hash/-/package-hash-4.0.0.tgz#3537f654665ec3cc38827387fc904c163c54f506" @@ -32045,11 +32138,30 @@ proxy-addr@~2.0.5: forwarded "~0.1.2" ipaddr.js "1.9.1" +proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-5.0.0.tgz#d31405c10d6e8431fde96cba7a0c027ce01d633b" + integrity sha512-gkH7BkvLVkSfX9Dk27W6TyNOWWZWRilRfk1XxGNWOYJ2TuedAv1yFpCaU9QSBmBe716XOTNpYNOzhysyw8xn7g== + dependencies: + agent-base "^6.0.0" + debug "4" + http-proxy-agent "^4.0.0" + https-proxy-agent "^5.0.0" + lru-cache "^5.1.1" + pac-proxy-agent "^5.0.0" + proxy-from-env "^1.0.0" + socks-proxy-agent "^5.0.0" + proxy-from-env@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" integrity sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4= +proxy-from-env@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + proxyquire@2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/proxyquire/-/proxyquire-2.1.3.tgz#2049a7eefa10a9a953346a18e54aab2b4268df39" @@ -32491,6 +32603,16 @@ raw-body@2.4.1: iconv-lite "0.4.24" unpipe "1.0.0" +raw-body@^2.2.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.2.tgz#baf3e9c21eebced59dd6533ac872b71f7b61cb32" + integrity sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ== + dependencies: + bytes "3.1.1" + http-errors "1.8.1" + iconv-lite "0.4.24" + unpipe "1.0.0" + raw-body@~1.1.0: version "1.1.7" resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-1.1.7.tgz#1d027c2bfa116acc6623bca8f00016572a87d425" @@ -35344,6 +35466,11 @@ setprototypeof@1.1.1: resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + sha.js@^2.4.0, sha.js@^2.4.8, sha.js@~2.4.4: version "2.4.11" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" @@ -36034,6 +36161,15 @@ sockjs@^0.3.21: uuid "^3.4.0" websocket-driver "^0.7.4" +socks-proxy-agent@5, socks-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz#032fb583048a29ebffec2e6a73fca0761f48177e" + integrity sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ== + dependencies: + agent-base "^6.0.2" + debug "4" + socks "^2.3.3" + socks-proxy-agent@^4.0.0: version "4.0.2" resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz#3c8991f3145b2799e70e11bd5fbc8b1963116386" @@ -36042,15 +36178,6 @@ socks-proxy-agent@^4.0.0: agent-base "~4.2.1" socks "~2.3.2" -socks-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz#7c0f364e7b1cf4a7a437e71253bed72e9004be60" - integrity sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA== - dependencies: - agent-base "6" - debug "4" - socks "^2.3.3" - socks-proxy-agent@^6.0.0: version "6.1.1" resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz#e664e8f1aaf4e1fb3df945f09e3d94f911137f87" @@ -37135,7 +37262,15 @@ sumchecker@^3.0.1: dependencies: debug "^4.1.0" -superagent@6.1.0: +superagent-proxy@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/superagent-proxy/-/superagent-proxy-3.0.0.tgz#e1a17ccba25883599e18d2974020fe83ee7d95d1" + integrity sha512-wAlRInOeDFyd9pyonrkJspdRAxdLrcsZ6aSnS+8+nu4x1aXbz6FWSTT9M6Ibze+eG60szlL7JA8wEIV7bPWuyQ== + dependencies: + debug "^4.3.2" + proxy-agent "^5.0.0" + +superagent@6.1.0, superagent@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/superagent/-/superagent-6.1.0.tgz#09f08807bc41108ef164cfb4be293cebd480f4a6" integrity sha512-OUDHEssirmplo3F+1HWKUrUjvnQuA+nZI6i/JJBdXb5eq9IyEQwPyPpqND+SSsxf6TygpBEkUjISVRN4/VOpeg== @@ -38065,6 +38200,11 @@ toidentifier@1.0.0: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + token-stream@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/token-stream/-/token-stream-1.0.0.tgz#cc200eab2613f4166d27ff9afc7ca56d49df6eb4" @@ -39171,6 +39311,13 @@ url@^0.11.0, url@~0.11.0: punycode "1.3.2" querystring "0.2.0" +urljoin@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/urljoin/-/urljoin-0.1.5.tgz#b25d2c6112c55ac9d50096a49a0f1fb7f4f53921" + integrity sha1-sl0sYRLFWsnVAJakmg8ft/T1OSE= + dependencies: + extend "~2.0.0" + use-callback-ref@^1.2.1, use-callback-ref@^1.2.3: version "1.2.5" resolved "https://registry.yarnpkg.com/use-callback-ref/-/use-callback-ref-1.2.5.tgz#6115ed242cfbaed5915499c0a9842ca2912f38a5" @@ -39823,6 +39970,11 @@ vm-browserify@1.1.2, vm-browserify@^1.0.0, vm-browserify@^1.0.1: resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== +vm2@^3.9.3: + version "3.9.5" + resolved "https://registry.yarnpkg.com/vm2/-/vm2-3.9.5.tgz#5288044860b4bbace443101fcd3bddb2a0aa2496" + integrity sha512-LuCAHZN75H9tdrAiLFf030oW7nJV5xwNMuk1ymOZwopmuK3d2H4L1Kv4+GFHgarKiLfXXLFU+7LDABHnwOkWng== + void-elements@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" @@ -41488,6 +41640,11 @@ xmlhttprequest-ssl@~1.5.4: resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4= +xregexp@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-2.0.0.tgz#52a63e56ca0b84a7f3a5f3d61872f126ad7a5943" + integrity sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM= + xregexp@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.0.0.tgz#e698189de49dd2a18cc5687b05e17c8e43943020" From c718fa2e84b2b3c011e4e3b869c4aaa589a73f40 Mon Sep 17 00:00:00 2001 From: BlueWinds Date: Wed, 26 Jan 2022 13:03:02 -0800 Subject: [PATCH 08/10] Review feedback --- system-tests/lib/performance-reporter.js | 63 +++++++++++++++--------- 1 file changed, 40 insertions(+), 23 deletions(-) diff --git a/system-tests/lib/performance-reporter.js b/system-tests/lib/performance-reporter.js index 116dc027ebf5..1a0e9b444e4d 100644 --- a/system-tests/lib/performance-reporter.js +++ b/system-tests/lib/performance-reporter.js @@ -13,51 +13,68 @@ class StatsdReporter { } console.log(chalk.green('Reporting to honeycomb')) + + let branch; let commitSha + this.honey = new Libhoney({ dataset: 'systemtest-performance', writeKey: process.env.HONEYCOMB_API_KEY, }) + commitInfo().then((commitInformation) => { + const ciInformation = ciProvider.commitParams() || {} + + this.branch = commitInformation.branch || ciInformation.branch + this.commitSha = commitInformation.sha || ciInformation.sha + }) + runner.on('test', (test) => { test.wallclockStart = Date.now() }) runner.on('test end', (test, done) => { // Skipped tests never get a 'start' event, but they still get 'test end' somehow. - if (test.state === 'skipped') { + if (!test.state || test.state === 'skipped') { return } - commitInfo().then((commitInformation) => { - const ciInformation = ciProvider.commitParams() || {} - const [, testTitle, browser] = test.title.match(/(.+?)(?: \[([a-z]+)\])?$/) - - const honeycombEvent = this.honey.newEvent() + const title = test.titlePath().join(' / ') + // This regex pulls apart a string like `e2e async timeouts / failing1 [electron]` + // into `e2e async timeouts / failing1` and `electron`, letting us use the same + // test name for all browsers, with the browser as a separate field. + // The browser capture group is optional because some tests aren't browser specific, + // in which case it will be undefined and not passed as a field to honeycomb. + const [, testTitle, browser] = title.match(/(.+?)(?: \[([a-z]+)\])?$/) - honeycombEvent.timestamp = test.wallclockStart - honeycombEvent.add({ - test: testTitle, - specFile: path.basename(test.file), - browser, - state: test.state, - durationMs: Date.now() - test.wallclockStart, - mochaDurationMs: test.duration, - branch: commitInformation.branch || ciInformation.branch, - commitSha: commitInformation.sha || ciInformation.sha, - buildUrl: process.env.CIRCLE_BUILD_URL, - platform: process.platform, - arch: process.arch, - version: pkg.version, - }) + const honeycombEvent = this.honey.newEvent() - honeycombEvent.send() + honeycombEvent.timestamp = test.wallclockStart + honeycombEvent.add({ + test: testTitle, + specFile: path.basename(test.file), + browser, + state: test.state, + err: test.err && test.err.message, + errStack: test.err && test.err.stack, + durationMs: Date.now() - test.wallclockStart, + mochaDurationMs: test.duration, + branch, + commitSha, + buildUrl: process.env.CIRCLE_BUILD_URL, + platform: process.platform, + arch: process.arch, + version: pkg.version, }) + + // honeycombEvent.send() }) } // If there is no done callback, then mocha-multi-reporter will kill the process without waiting for our honeycomb post to complete. done (failures, callback) { - this.honey.flush().then(callback) + if (this.honey) { + this.honey.flush().then(callback) + } } } From b5f60d7a75d8c1bfa0b304092ae7a01d7edeaf21 Mon Sep 17 00:00:00 2001 From: Tim Griesser Date: Wed, 26 Jan 2022 16:34:53 -0500 Subject: [PATCH 09/10] Update system-tests/lib/performance-reporter.js --- system-tests/lib/performance-reporter.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system-tests/lib/performance-reporter.js b/system-tests/lib/performance-reporter.js index 1a0e9b444e4d..d0959d755ead 100644 --- a/system-tests/lib/performance-reporter.js +++ b/system-tests/lib/performance-reporter.js @@ -66,7 +66,7 @@ class StatsdReporter { version: pkg.version, }) - // honeycombEvent.send() + honeycombEvent.send() }) } From 056dbca6b7a336a57dffa3dcf1eeebed831a7d20 Mon Sep 17 00:00:00 2001 From: BlueWinds Date: Thu, 27 Jan 2022 09:01:36 -0800 Subject: [PATCH 10/10] Minor code cleanup --- system-tests/lib/performance-reporter.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system-tests/lib/performance-reporter.js b/system-tests/lib/performance-reporter.js index 1a0e9b444e4d..297115b0c8a7 100644 --- a/system-tests/lib/performance-reporter.js +++ b/system-tests/lib/performance-reporter.js @@ -32,7 +32,7 @@ class StatsdReporter { test.wallclockStart = Date.now() }) - runner.on('test end', (test, done) => { + runner.on('test end', (test) => { // Skipped tests never get a 'start' event, but they still get 'test end' somehow. if (!test.state || test.state === 'skipped') { return