diff --git a/bin/ncu-ci b/bin/ncu-ci index 8037a26..1c355f8 100755 --- a/bin/ncu-ci +++ b/bin/ncu-ci @@ -6,13 +6,19 @@ const { JobParser, parseJobFromURL, CI_TYPES_KEYS: { - PR, COMMIT, BENCHMARK + PR, COMMIT, BENCHMARK, CITGM } } = require('../lib/ci/ci_type_parser'); const { - PRBuild, BenchmarkRun, CommitBuild, HealthBuild, - listBuilds, FailureAggregator, jobCache + PRBuild, + BenchmarkRun, + CommitBuild, + CITGMBuild, + HealthBuild, + listBuilds, + FailureAggregator, + jobCache } = require('../lib/ci/ci_result_parser'); const clipboardy = require('clipboardy'); const { writeJson, writeFile } = require('../lib/file'); @@ -28,7 +34,8 @@ const commandKeys = [ 'walk', 'url', 'pr', - 'commit' + 'commit', + 'citgm' ]; // eslint-disable-next-line no-unused-vars @@ -118,6 +125,18 @@ const argv = yargs }, handler }) + .command({ + command: 'citgm ', + desc: 'Show results of a citgm-smoker CI job', + builder: (yargs) => { + yargs + .positional('jobid', { + describe: 'id of the job', + type: 'number' + }); + }, + handler + }) .demandCommand(1, 'must provide a valid command') .option('copy', { default: false, @@ -144,7 +163,8 @@ const argv = yargs const commandToType = { commit: COMMIT, pr: PR, - benchmark: BENCHMARK + benchmark: BENCHMARK, + citgm: CITGM }; class CICommand { @@ -188,6 +208,9 @@ class CICommand { case COMMIT: build = new CommitBuild(cli, request, job.jobid); break; + case CITGM: + build = new CITGMBuild(cli, request, job.jobid); + break; case BENCHMARK: build = new BenchmarkRun(cli, request, job.jobid); break; @@ -208,8 +231,7 @@ class CICommand { } } - async aggregate() { // noop - } + async aggregate() {} // noop async serialize() { const { argv, cli } = this; @@ -238,7 +260,7 @@ class CICommand { if (this.json.length) { writeJson(argv.json, this.json); cli.separator(''); - cli.log(`Written JSON to ${argv.json}`); + cli.log(`Wrote JSON to ${argv.json}`); } else { cli.error('No JSON generated'); } @@ -357,6 +379,7 @@ async function main(command, argv) { } case 'pr': case 'commit': + case 'citgm': case 'benchmark': { commandHandler = new JobCommand(cli, request, argv, command); break; diff --git a/docs/ncu-ci.md b/docs/ncu-ci.md index 12965a4..e1e51a7 100644 --- a/docs/ncu-ci.md +++ b/docs/ncu-ci.md @@ -21,6 +21,7 @@ Commands: ncu-ci commit Show results of a node-test-commit CI job ncu-ci benchmark Show results of a benchmark-node-micro-benchmarks CI job + ncu-ci citgm Show results of a citgm-smoker job Options: --version Show version number [boolean] @@ -62,7 +63,7 @@ node on git:master ❯ ncu-ci rate commit `ncu-ci walk ` walks CI and displays failures, where `` can be either `pr` for `node-test-pull-request` or `commit` for `node-test-commit`. -Example +Example: ```sh node on git:master ❯ ncu-ci walk commit ✔ Done-------------------------------------------------------------------------------- @@ -226,6 +227,40 @@ Notifying upstream projects of job completion Finished: SUCCESS ``` +### `ncu-ci citgm ` + +`ncu-ci citgm ` shows the results of a given citgm-smoker job. + +Example: +``` +node on git:master ❯ ncu-ci citgm 2400 10:25AM +-------------------------------------------------------------------------------- +[1/1] Running CITGM: 2400 +-------------------------------------------------------------------------------- +✔ Header data downloaded +✔ Report data downloaded +----------------------------------- Summary ------------------------------------ +Result FAILURE +URL https://ci.nodejs.org/job/citgm-smoker/2400/testReport/ +Source https://github.com/nodejs/node/pull/34093/ +Commit [9ec07f42864c] 2020-06-30, Version 14.5.0 (Current) +Date 2020-06-29 21:17:56 -0700 +Author Shelley Vohr +----------------------------------- Failures ----------------------------------- +┌────────────────────────┬───────────────────────┬───────────────────────┬─────────────────────────┬─────────────────────┬─────────────────┬────────────────────┐ +│ (index) │ 0 │ 1 │ 2 │ 3 │ 4 │ 5 │ +├────────────────────────┼───────────────────────┼───────────────────────┼─────────────────────────┼─────────────────────┼─────────────────┼────────────────────┤ +│ debian9-64 │ 'coffeescript-v2.5.1' │ 'through2-v4.0.2' │ │ │ │ │ +│ rhel7-s390x │ 'through2-v4.0.2' │ │ │ │ │ │ +│ fedora-latest-x64 │ 'coffeescript-v2.5.1' │ 'through2-v4.0.2' │ │ │ │ │ +│ ubuntu1604-64 │ 'coffeescript-v2.5.1' │ 'through2-v4.0.2' │ │ │ │ │ +│ osx1014 │ 'acorn-v7.3.1' │ 'coffeescript-v2.5.1' │ 'clinic-v6.0.2' │ 'ember-cli-v3.19.0' │ 'semver-v7.3.2' │ 'watchify-v3.11.1' │ +│ ubuntu1804-64 │ 'coffeescript-v2.5.1' │ 'through2-v4.0.2' │ │ │ │ │ +│ fedora-last-latest-x64 │ 'coffeescript-v2.5.1' │ 'through2-v4.0.2' │ │ │ │ │ +│ centos7-ppcle │ 'coffeescript-v2.5.1' │ 'clinic-v6.0.2' │ 'torrent-stream-v1.2.0' │ 'through2-v4.0.2' │ │ │ +└────────────────────────┴───────────────────────┴───────────────────────┴─────────────────────────┴─────────────────────┴─────────────────┴────────────────────┘ +``` + ## Caveats The CI failures are parsed using pattern matching and could be incorrect. Feel diff --git a/lib/ci/ci_result_parser.js b/lib/ci/ci_result_parser.js index cf1964e..33d48e5 100644 --- a/lib/ci/ci_result_parser.js +++ b/lib/ci/ci_result_parser.js @@ -50,15 +50,24 @@ const PR_TREE = const COMMIT_TREE = `result,url,number,${ACTION_TREE},${CHANGE_TREE},builtOn,` + `subBuilds[${BUILD_FIELDS}]`; +const CITGM_MAIN_TREE = + `result,url,number,${ACTION_TREE},${CHANGE_TREE},builtOn`; + // com.tikal.jenkins.plugins.multijob.MultiJobBuild const FANNED_TREE = `result,url,number,subBuilds[phaseName,${BUILD_FIELDS}]`; + // hudson.matrix.MatrixBuild const BUILD_TREE = 'result,runs[url,number,result],builtOn'; const LINTER_TREE = 'result,url,number,builtOn'; const CAUSE_TREE = 'upstreamBuild,upstreamProject,shortDescription,_class'; const RUN_TREE = `actions[causes[${CAUSE_TREE}]],builtOn`; +// hudson.tasks.test.MatrixTestResult +const RESULT_TREE = 'result[suites[cases[name,status]]]'; +const CITGM_REPORT_TREE = + `failCount,skipCount,totalCount,childReports[child[url],${RESULT_TREE}]`; + function getPath(url) { return url.replace(`https://${CI_DOMAIN}/`, '').replace('api/json', ''); } @@ -115,11 +124,11 @@ class Job { return `https://${CI_DOMAIN}/${path}console`; } - async getBuildData() { + async getBuildData(type = 'Build') { const { cli, path } = this; cli.startSpinner(`Querying data for ${path}`); const data = await this.getAPIData(); - cli.stopSpinner('Build data downloaded'); + cli.stopSpinner(`${type} data downloaded`); return data; } @@ -133,13 +142,13 @@ class Job { async getAPIData() { const { cli, request, path } = this; const url = this.apiUrl; - cli.updateSpinner(`Querying API of ${path}`); + cli.updateSpinner(`Querying API for ${path}`); return request.json(url); } async getConsoleText() { const { cli, request, path } = this; - cli.updateSpinner(`Querying console text of ${path}`); + cli.updateSpinner(`Querying console text for ${path}`); const data = await request.text(this.consoleUrl); return data.replace(/\r/g, ''); } @@ -334,10 +343,13 @@ class TestBuild extends Job { } formatAsJson() { - const result = this.failures.map(item => Object.assign({ - source: this.sourceURL, - upstream: this.jobUrl + const { jobUrl, failures, sourceURL } = this; + + const result = failures.map(item => Object.assign({ + source: sourceURL, + upstream: jobUrl }, item)); + return JSON.parse(JSON.stringify(result)); } } @@ -740,6 +752,147 @@ class PRBuild extends TestBuild { } } +class CITGMBuild extends TestBuild { + constructor(cli, request, id) { + const path = `job/citgm-smoker/${id}/`; + const tree = CITGM_MAIN_TREE; + + super(cli, request, path, tree); + + this.id = id; + } + + async getResults() { + const { id } = this; + + let headerData; + try { + headerData = await this.getBuildData('Summary'); + } catch (err) { + this.failures = [ + new NCUFailure({ url: this.apiUrl }, err.message) + ]; + return this.failures; + } + const { result } = headerData; + + this.setBuildData(headerData); + + // CITGM jobs store results in a different location than + // they do summary data, so we need to update the endpoint + // and issue a second API call in order to fetch result data. + this.tree = CITGM_REPORT_TREE; + this.path = `job/citgm-smoker/${this.id}/testReport/`; + + let resultData; + try { + resultData = await this.getBuildData('Results'); + } catch (err) { + this.failures = [ + new NCUFailure({ url: this.apiUrl }, err.message) + ]; + return this.failures; + } + + this.results = this.parseResults(resultData); + + // Update id again so that it correctly displays in Summary output. + this.path = `job/citgm-smoker/${id}/`; + + return { result }; + } + + parseResults(data) { + const { childReports, totalCount, skipCount, failCount } = data; + const results = { all: {}, failures: {}, statistics: {} }; + + const passCount = totalCount - failCount - skipCount; + results.statistics.passed = passCount; + results.statistics.total = totalCount; + results.statistics.skipped = skipCount; + results.statistics.failed = failCount; + + childReports.forEach(platform => { + const cases = flatten(platform.result.suites[0].cases); + const url = platform.child.url; + const nodeName = getNodeName(url); + + results.all[nodeName] = { url, modules: cases }; + + const failedModules = cases.filter(c => c.status === 'FAILED'); + results.failures[nodeName] = { url, modules: failedModules }; + }); + + return results; + } + + displayBuilds() { + const { cli, results } = this; + const { failed, skipped, passed, total } = results.statistics; + + cli.separator('Statistics'); + console.table({ + Failed: failed, + Skipped: skipped, + Passed: passed, + Total: total + }); + + cli.separator('Failures'); + const output = {}; + for (const platform in results.failures) { + const modules = results.failures[platform].modules; + const failures = modules.map(f => f.name); + + output[platform] = failures; + } + + console.table(output); + } + + formatAsJson() { + const { jobUrl, results, sourceURL } = this; + + const result = { + source: sourceURL, + upstream: jobUrl, + ...results.statistics, + ...results.failures + }; + + return JSON.parse(JSON.stringify(result)); + } + + formatAsMarkdown() { + const { jobUrl, result, results, id } = this; + + let output = `# CITGM Data for [${id}](${jobUrl})\n\n`; + + const { failed, skipped, passed, total } = results.statistics; + + output += `## Statistics for job [${id}](${jobUrl})\n\n`; + output += '| FAILED | SKIPPED | PASSED | TOTAL |\n'; + output += '| -------- | --------- | -------- | ------- |\n'; + output += `| ${pad(failed, 8)} | ${pad(skipped, 9)} |`; + output += ` ${pad(passed, 8)} | ${pad(total, 7)} |\n\n`; + + if (result === SUCCESS) { + output += `Job [${id}](${jobUrl}) is green.`; + return output; + } + + output += `## Failures in job [${id}](${jobUrl})\n\n`; + for (const failure in results.failures) { + const data = results.failures[failure]; + output += `### [${failure}](${data.url})\n\n`; + + const failures = data.modules.map(f => `* ${f.name}`); + output += `${failures.join('\n')}\n\n`; + } + return output; + } +} + function filterBuild(builds, type) { return builds .filter(build => build.result === type) @@ -1034,6 +1187,7 @@ module.exports = { PRBuild, BenchmarkRun, CommitBuild, + CITGMBuild, HealthBuild, jobCache, parseJobFromURL, diff --git a/test/fixtures/jenkins/citgm/citgm-smoker-2400-testReport.json b/test/fixtures/jenkins/citgm/citgm-smoker-2400-testReport.json new file mode 100644 index 0000000..930aab3 --- /dev/null +++ b/test/fixtures/jenkins/citgm/citgm-smoker-2400-testReport.json @@ -0,0 +1,3520 @@ +{ + "_class":"hudson.tasks.test.MatrixTestResult", + "failCount":21, + "skipCount":233, + "totalCount":848, + "childReports":[ + { + "child":{ + "_class":"hudson.matrix.MatrixRun", + "url":"https://ci.nodejs.org/job/citgm-smoker/nodes=debian9-64/2400/" + }, + "result":{ + "_class":"hudson.tasks.junit.TestResult", + "suites":[ + { + "cases":[ + { + "name":"@nearform/doctor-v5.0.2", + "status":"SKIPPED" + }, + { + "name":"@nearform/bubbleprof-v4.0.2", + "status":"FIXED" + }, + { + "name":"JSONStream-v1.3.5", + "status":"PASSED" + }, + { + "name":"@nearform/flame-v6.0.1", + "status":"SKIPPED" + }, + { + "name":"async", + "status":"SKIPPED" + }, + { + "name":"ava", + "status":"SKIPPED" + }, + { + "name":"bcrypt-v5.0.0", + "status":"PASSED" + }, + { + "name":"binary-split-v1.0.5", + "status":"PASSED" + }, + { + "name":"bl-v4.0.2", + "status":"PASSED" + }, + { + "name":"acorn-v7.3.1", + "status":"PASSED" + }, + { + "name":"blake2b-wasm-v2.1.0", + "status":"PASSED" + }, + { + "name":"bluebird-v3.7.2", + "status":"PASSED" + }, + { + "name":"body-parser-v1.19.0", + "status":"PASSED" + }, + { + "name":"bson", + "status":"SKIPPED" + }, + { + "name":"bufferutil-v4.0.1", + "status":"PASSED" + }, + { + "name":"cheerio-v1.0.0-rc.3", + "status":"PASSED" + }, + { + "name":"browserify-v16.5.1", + "status":"PASSED" + }, + { + "name":"clinic-v6.0.2", + "status":"FIXED" + }, + { + "name":"commander", + "status":"SKIPPED" + }, + { + "name":"crc32-stream-v3.0.1", + "status":"PASSED" + }, + { + "name":"csv-parser-v2.3.3", + "status":"PASSED" + }, + { + "name":"david", + "status":"SKIPPED" + }, + { + "name":"debug-v4.1.1", + "status":"PASSED" + }, + { + "name":"dicer-v0.3.0", + "status":"PASSED" + }, + { + "name":"duplexer2-v0.1.4", + "status":"PASSED" + }, + { + "name":"duplexify-v4.1.1", + "status":"PASSED" + }, + { + "name":"coffeescript-v2.5.1", + "status":"FAILED" + }, + { + "name":"eslint", + "status":"SKIPPED" + }, + { + "name":"ember-cli-v3.19.0", + "status":"PASSED" + }, + { + "name":"eslint-plugin-jest-v23.17.1", + "status":"PASSED" + }, + { + "name":"express-v4.17.1", + "status":"PASSED" + }, + { + "name":"express-session-v1.17.1", + "status":"PASSED" + }, + { + "name":"esprima-v4.0.1", + "status":"PASSED" + }, + { + "name":"ffi", + "status":"SKIPPED" + }, + { + "name":"flush-write-stream-v2.0.0", + "status":"PASSED" + }, + { + "name":"from2-v2.3.0", + "status":"PASSED" + }, + { + "name":"fs-extra", + "status":"SKIPPED" + }, + { + "name":"full-icu-test-v1.0.3", + "status":"PASSED" + }, + { + "name":"glob-v7.1.6", + "status":"PASSED" + }, + { + "name":"got", + "status":"SKIPPED" + }, + { + "name":"graceful-fs", + "status":"SKIPPED" + }, + { + "name":"fastify-v2.15.1", + "status":"PASSED" + }, + { + "name":"gulp-util-v3.0.8", + "status":"PASSED" + }, + { + "name":"gulp-v4.0.2", + "status":"PASSED" + }, + { + "name":"iconv-v3.0.0", + "status":"PASSED" + }, + { + "name":"isarray-v2.0.5", + "status":"PASSED" + }, + { + "name":"inherits-v2.0.4", + "status":"PASSED" + }, + { + "name":"koa-v2.13.0", + "status":"PASSED" + }, + { + "name":"jquery-v3.5.1", + "status":"SKIPPED" + }, + { + "name":"level-v6.0.1", + "status":"PASSED" + }, + { + "name":"libxmljs", + "status":"SKIPPED" + }, + { + "name":"leveldown-v5.6.0", + "status":"PASSED" + }, + { + "name":"lodash-v4.17.15", + "status":"PASSED" + }, + { + "name":"microtime-v3.0.0", + "status":"PASSED" + }, + { + "name":"mime-v2.4.6", + "status":"PASSED" + }, + { + "name":"mkdirp", + "status":"SKIPPED" + }, + { + "name":"mocha", + "status":"SKIPPED" + }, + { + "name":"moment", + "status":"SKIPPED" + }, + { + "name":"minimist-v1.2.5", + "status":"PASSED" + }, + { + "name":"multer-v1.4.2", + "status":"PASSED" + }, + { + "name":"node-gyp-v7.0.0", + "status":"FIXED" + }, + { + "name":"nan-v2.14.1", + "status":"PASSED" + }, + { + "name":"node-sass", + "status":"SKIPPED" + }, + { + "name":"node-report-v2.2.10", + "status":"PASSED" + }, + { + "name":"path-to-regexp-v6.1.0", + "status":"PASSED" + }, + { + "name":"pino-v6.3.2", + "status":"FIXED" + }, + { + "name":"pumpify-v2.0.1", + "status":"PASSED" + }, + { + "name":"q-v1.5.1", + "status":"PASSED" + }, + { + "name":"pug-v3.0.0", + "status":"PASSED" + }, + { + "name":"react", + "status":"SKIPPED" + }, + { + "name":"readable-stream", + "status":"SKIPPED" + }, + { + "name":"ref", + "status":"SKIPPED" + }, + { + "name":"resolve-v1.17.0", + "status":"FIXED" + }, + { + "name":"radium-v0.26.0", + "status":"PASSED" + }, + { + "name":"rewire-v5.0.0", + "status":"PASSED" + }, + { + "name":"rimraf-v3.0.2", + "status":"PASSED" + }, + { + "name":"router-v1.3.5", + "status":"PASSED" + }, + { + "name":"sax-v1.2.4", + "status":"PASSED" + }, + { + "name":"semver-v7.3.2", + "status":"FIXED" + }, + { + "name":"serialport-v9.0.0", + "status":"PASSED" + }, + { + "name":"shot-v4.0.7", + "status":"FIXED" + }, + { + "name":"spawn-wrap-v2.0.0", + "status":"PASSED" + }, + { + "name":"spdy", + "status":"SKIPPED" + }, + { + "name":"spdy-transport", + "status":"SKIPPED" + }, + { + "name":"socket.io-v2.3.0", + "status":"PASSED" + }, + { + "name":"split2-v3.1.1", + "status":"PASSED" + }, + { + "name":"stylus", + "status":"SKIPPED" + }, + { + "name":"tape-v5.0.1", + "status":"PASSED" + }, + { + "name":"thread-sleep-v2.2.0", + "status":"PASSED" + }, + { + "name":"sqlite3-v4.2.0", + "status":"PASSED" + }, + { + "name":"throughv-v1.0.4", + "status":"PASSED" + }, + { + "name":"time", + "status":"SKIPPED" + }, + { + "name":"torrent-stream-v1.2.0", + "status":"PASSED" + }, + { + "name":"uglify-js-v3.10.0", + "status":"PASSED" + }, + { + "name":"underscore-v1.10.2", + "status":"FIXED" + }, + { + "name":"uuid-v8.2.0", + "status":"PASSED" + }, + { + "name":"vinyl-v2.2.0", + "status":"PASSED" + }, + { + "name":"vinyl-fs", + "status":"SKIPPED" + }, + { + "name":"watchify-v3.11.1", + "status":"PASSED" + }, + { + "name":"weak", + "status":"SKIPPED" + }, + { + "name":"through2-v4.0.2", + "status":"FAILED" + }, + { + "name":"winston-v3.3.3", + "status":"FIXED" + }, + { + "name":"ws-v7.3.0", + "status":"PASSED" + }, + { + "name":"yargs-v15.3.1", + "status":"PASSED" + }, + { + "name":"zeromq", + "status":"SKIPPED" + }, + { + "name":"yeoman-generator-v4.11.0", + "status":"PASSED" + } + ] + } + ] + } + }, + { + "child":{ + "_class":"hudson.matrix.MatrixRun", + "url":"https://ci.nodejs.org/job/citgm-smoker/nodes=rhel7-s390x/2400/" + }, + "result":{ + "_class":"hudson.tasks.junit.TestResult", + "suites":[ + { + "cases":[ + { + "name":"JSONStream-v1.3.5", + "status":"PASSED" + }, + { + "name":"@nearform/flame-v6.0.1", + "status":"SKIPPED" + }, + { + "name":"async", + "status":"SKIPPED" + }, + { + "name":"ava", + "status":"SKIPPED" + }, + { + "name":"@nearform/doctor-v5.0.2", + "status":"FIXED" + }, + { + "name":"@nearform/bubbleprof-v4.0.2", + "status":"FIXED" + }, + { + "name":"bcrypt-v5.0.0", + "status":"PASSED" + }, + { + "name":"binary-split-v1.0.5", + "status":"PASSED" + }, + { + "name":"acorn-v7.3.1", + "status":"PASSED" + }, + { + "name":"bl-v4.0.2", + "status":"PASSED" + }, + { + "name":"blake2b-wasm-v2.1.0", + "status":"PASSED" + }, + { + "name":"bson", + "status":"SKIPPED" + }, + { + "name":"bluebird-v3.7.2", + "status":"PASSED" + }, + { + "name":"bufferutil-v4.0.1", + "status":"PASSED" + }, + { + "name":"cheerio-v1.0.0-rc.3", + "status":"PASSED" + }, + { + "name":"coffeescript", + "status":"SKIPPED" + }, + { + "name":"commander", + "status":"SKIPPED" + }, + { + "name":"body-parser-v1.19.0", + "status":"PASSED" + }, + { + "name":"crc32-stream-v3.0.1", + "status":"PASSED" + }, + { + "name":"david", + "status":"SKIPPED" + }, + { + "name":"debug", + "status":"SKIPPED" + }, + { + "name":"dicer-v0.3.0", + "status":"PASSED" + }, + { + "name":"duplexer2-v0.1.4", + "status":"PASSED" + }, + { + "name":"browserify-v16.5.1", + "status":"PASSED" + }, + { + "name":"duplexify-v4.1.1", + "status":"PASSED" + }, + { + "name":"eslint", + "status":"SKIPPED" + }, + { + "name":"csv-parser-v2.3.3", + "status":"PASSED" + }, + { + "name":"eslint-plugin-jest-v23.17.1", + "status":"PASSED" + }, + { + "name":"esprima-v4.0.1", + "status":"PASSED" + }, + { + "name":"express-v4.17.1", + "status":"PASSED" + }, + { + "name":"express-session-v1.17.1", + "status":"PASSED" + }, + { + "name":"ffi", + "status":"SKIPPED" + }, + { + "name":"flush-write-stream-v2.0.0", + "status":"PASSED" + }, + { + "name":"from2-v2.3.0", + "status":"PASSED" + }, + { + "name":"fs-extra", + "status":"SKIPPED" + }, + { + "name":"full-icu-test-v1.0.3", + "status":"PASSED" + }, + { + "name":"fastify-v2.15.1", + "status":"PASSED" + }, + { + "name":"got", + "status":"SKIPPED" + }, + { + "name":"graceful-fs", + "status":"SKIPPED" + }, + { + "name":"glob-v7.1.6", + "status":"PASSED" + }, + { + "name":"gulp-v4.0.2", + "status":"PASSED" + }, + { + "name":"ember-cli-v3.19.0", + "status":"PASSED" + }, + { + "name":"iconv-v3.0.0", + "status":"PASSED" + }, + { + "name":"gulp-util-v3.0.8", + "status":"PASSED" + }, + { + "name":"isarray-v2.0.5", + "status":"PASSED" + }, + { + "name":"inherits-v2.0.4", + "status":"PASSED" + }, + { + "name":"koa-v2.13.0", + "status":"PASSED" + }, + { + "name":"level-v6.0.1", + "status":"SKIPPED" + }, + { + "name":"libxmljs", + "status":"SKIPPED" + }, + { + "name":"jquery-v3.5.1", + "status":"SKIPPED" + }, + { + "name":"clinic-v6.0.2", + "status":"FIXED" + }, + { + "name":"microtime-v3.0.0", + "status":"PASSED" + }, + { + "name":"mime-v2.4.6", + "status":"PASSED" + }, + { + "name":"mkdirp", + "status":"SKIPPED" + }, + { + "name":"mocha", + "status":"SKIPPED" + }, + { + "name":"moment", + "status":"SKIPPED" + }, + { + "name":"lodash-v4.17.15", + "status":"PASSED" + }, + { + "name":"minimist-v1.2.5", + "status":"PASSED" + }, + { + "name":"multer-v1.4.2", + "status":"PASSED" + }, + { + "name":"leveldown-v5.6.0", + "status":"SKIPPED" + }, + { + "name":"node-sass", + "status":"SKIPPED" + }, + { + "name":"node-gyp-v7.0.0", + "status":"FIXED" + }, + { + "name":"node-report-v2.2.10", + "status":"PASSED" + }, + { + "name":"nan-v2.14.1", + "status":"PASSED" + }, + { + "name":"pumpify-v2.0.1", + "status":"PASSED" + }, + { + "name":"pug-v3.0.0", + "status":"PASSED" + }, + { + "name":"q-v1.5.1", + "status":"PASSED" + }, + { + "name":"react", + "status":"SKIPPED" + }, + { + "name":"readable-stream", + "status":"SKIPPED" + }, + { + "name":"ref", + "status":"SKIPPED" + }, + { + "name":"pino-v6.3.2", + "status":"FIXED" + }, + { + "name":"path-to-regexp-v6.1.0", + "status":"PASSED" + }, + { + "name":"rewire-v5.0.0", + "status":"PASSED" + }, + { + "name":"radium-v0.26.0", + "status":"PASSED" + }, + { + "name":"router-v1.3.5", + "status":"PASSED" + }, + { + "name":"resolve-v1.17.0", + "status":"FIXED" + }, + { + "name":"rimraf-v3.0.2", + "status":"PASSED" + }, + { + "name":"sax-v1.2.4", + "status":"PASSED" + }, + { + "name":"shot-v4.0.7", + "status":"FIXED" + }, + { + "name":"socket.io-v2.3.0", + "status":"PASSED" + }, + { + "name":"spdy", + "status":"SKIPPED" + }, + { + "name":"spdy-transport", + "status":"SKIPPED" + }, + { + "name":"semver-v7.3.2", + "status":"FIXED" + }, + { + "name":"spawn-wrap-v2.0.0", + "status":"PASSED" + }, + { + "name":"stylus", + "status":"SKIPPED" + }, + { + "name":"serialport-v9.0.0", + "status":"PASSED" + }, + { + "name":"thread-sleep-v2.2.0", + "status":"PASSED" + }, + { + "name":"split2-v3.1.1", + "status":"PASSED" + }, + { + "name":"throughv-v1.0.4", + "status":"PASSED" + }, + { + "name":"time", + "status":"SKIPPED" + }, + { + "name":"tape-v5.0.1", + "status":"PASSED" + }, + { + "name":"torrent-stream-v1.2.0", + "status":"PASSED" + }, + { + "name":"underscore-v1.10.2", + "status":"PASSED" + }, + { + "name":"sqlite3-v4.2.0", + "status":"PASSED" + }, + { + "name":"vinyl-v2.2.0", + "status":"PASSED" + }, + { + "name":"vinyl-fs", + "status":"SKIPPED" + }, + { + "name":"uuid-v8.2.0", + "status":"PASSED" + }, + { + "name":"weak", + "status":"SKIPPED" + }, + { + "name":"watchify-v3.11.1", + "status":"PASSED" + }, + { + "name":"ws-v7.3.0", + "status":"PASSED" + }, + { + "name":"yargs-v15.3.1", + "status":"PASSED" + }, + { + "name":"winston-v3.3.3", + "status":"PASSED" + }, + { + "name":"zeromq", + "status":"SKIPPED" + }, + { + "name":"yeoman-generator-v4.11.0", + "status":"PASSED" + }, + { + "name":"uglify-js-v3.10.0", + "status":"PASSED" + }, + { + "name":"through2-v4.0.2", + "status":"FAILED" + } + ] + } + ] + } + }, + { + "child":{ + "_class":"hudson.matrix.MatrixRun", + "url":"https://ci.nodejs.org/job/citgm-smoker/nodes=fedora-latest-x64/2400/" + }, + "result":{ + "_class":"hudson.tasks.junit.TestResult", + "suites":[ + { + "cases":[ + { + "name":"@nearform/doctor-v5.0.2", + "status":"SKIPPED" + }, + { + "name":"@nearform/bubbleprof-v4.0.2", + "status":"FIXED" + }, + { + "name":"JSONStream-v1.3.5", + "status":"PASSED" + }, + { + "name":"@nearform/flame-v6.0.1", + "status":"SKIPPED" + }, + { + "name":"async", + "status":"SKIPPED" + }, + { + "name":"ava", + "status":"SKIPPED" + }, + { + "name":"bcrypt-v5.0.0", + "status":"PASSED" + }, + { + "name":"binary-split-v1.0.5", + "status":"PASSED" + }, + { + "name":"bl-v4.0.2", + "status":"PASSED" + }, + { + "name":"blake2b-wasm-v2.1.0", + "status":"PASSED" + }, + { + "name":"acorn-v7.3.1", + "status":"PASSED" + }, + { + "name":"bluebird-v3.7.2", + "status":"PASSED" + }, + { + "name":"body-parser-v1.19.0", + "status":"PASSED" + }, + { + "name":"bson", + "status":"SKIPPED" + }, + { + "name":"bufferutil-v4.0.1", + "status":"PASSED" + }, + { + "name":"cheerio-v1.0.0-rc.3", + "status":"PASSED" + }, + { + "name":"browserify-v16.5.1", + "status":"PASSED" + }, + { + "name":"clinic-v6.0.2", + "status":"FIXED" + }, + { + "name":"commander", + "status":"SKIPPED" + }, + { + "name":"crc32-stream-v3.0.1", + "status":"PASSED" + }, + { + "name":"csv-parser-v2.3.3", + "status":"PASSED" + }, + { + "name":"david", + "status":"SKIPPED" + }, + { + "name":"debug-v4.1.1", + "status":"PASSED" + }, + { + "name":"dicer-v0.3.0", + "status":"PASSED" + }, + { + "name":"duplexer2-v0.1.4", + "status":"PASSED" + }, + { + "name":"duplexify-v4.1.1", + "status":"PASSED" + }, + { + "name":"coffeescript-v2.5.1", + "status":"FAILED" + }, + { + "name":"eslint", + "status":"SKIPPED" + }, + { + "name":"eslint-plugin-jest-v23.17.1", + "status":"PASSED" + }, + { + "name":"ember-cli-v3.19.0", + "status":"PASSED" + }, + { + "name":"express-v4.17.1", + "status":"PASSED" + }, + { + "name":"esprima-v4.0.1", + "status":"PASSED" + }, + { + "name":"express-session-v1.17.1", + "status":"PASSED" + }, + { + "name":"ffi", + "status":"SKIPPED" + }, + { + "name":"flush-write-stream-v2.0.0", + "status":"PASSED" + }, + { + "name":"from2-v2.3.0", + "status":"PASSED" + }, + { + "name":"fs-extra", + "status":"SKIPPED" + }, + { + "name":"full-icu-test-v1.0.3", + "status":"PASSED" + }, + { + "name":"glob-v7.1.6", + "status":"PASSED" + }, + { + "name":"got", + "status":"SKIPPED" + }, + { + "name":"graceful-fs", + "status":"SKIPPED" + }, + { + "name":"fastify-v2.15.1", + "status":"PASSED" + }, + { + "name":"gulp-util-v3.0.8", + "status":"PASSED" + }, + { + "name":"iconv-v3.0.0", + "status":"PASSED" + }, + { + "name":"gulp-v4.0.2", + "status":"PASSED" + }, + { + "name":"isarray-v2.0.5", + "status":"PASSED" + }, + { + "name":"inherits-v2.0.4", + "status":"PASSED" + }, + { + "name":"koa-v2.13.0", + "status":"PASSED" + }, + { + "name":"jquery-v3.5.1", + "status":"SKIPPED" + }, + { + "name":"level-v6.0.1", + "status":"PASSED" + }, + { + "name":"libxmljs", + "status":"SKIPPED" + }, + { + "name":"leveldown-v5.6.0", + "status":"PASSED" + }, + { + "name":"lodash-v4.17.15", + "status":"PASSED" + }, + { + "name":"mime-v2.4.6", + "status":"PASSED" + }, + { + "name":"microtime-v3.0.0", + "status":"PASSED" + }, + { + "name":"mkdirp", + "status":"SKIPPED" + }, + { + "name":"mocha", + "status":"SKIPPED" + }, + { + "name":"moment", + "status":"SKIPPED" + }, + { + "name":"minimist-v1.2.5", + "status":"PASSED" + }, + { + "name":"multer-v1.4.2", + "status":"PASSED" + }, + { + "name":"node-gyp-v7.0.0", + "status":"FIXED" + }, + { + "name":"nan-v2.14.1", + "status":"PASSED" + }, + { + "name":"node-sass", + "status":"SKIPPED" + }, + { + "name":"node-report-v2.2.10", + "status":"PASSED" + }, + { + "name":"path-to-regexp-v6.1.0", + "status":"PASSED" + }, + { + "name":"pino-v6.3.2", + "status":"FIXED" + }, + { + "name":"pumpify-v2.0.1", + "status":"PASSED" + }, + { + "name":"q-v1.5.1", + "status":"PASSED" + }, + { + "name":"pug-v3.0.0", + "status":"PASSED" + }, + { + "name":"react", + "status":"SKIPPED" + }, + { + "name":"readable-stream", + "status":"SKIPPED" + }, + { + "name":"ref", + "status":"SKIPPED" + }, + { + "name":"radium-v0.26.0", + "status":"PASSED" + }, + { + "name":"resolve-v1.17.0", + "status":"FIXED" + }, + { + "name":"rewire-v5.0.0", + "status":"PASSED" + }, + { + "name":"rimraf-v3.0.2", + "status":"PASSED" + }, + { + "name":"router-v1.3.5", + "status":"PASSED" + }, + { + "name":"sax-v1.2.4", + "status":"PASSED" + }, + { + "name":"semver-v7.3.2", + "status":"FIXED" + }, + { + "name":"serialport-v9.0.0", + "status":"PASSED" + }, + { + "name":"shot-v4.0.7", + "status":"FIXED" + }, + { + "name":"spawn-wrap-v2.0.0", + "status":"FIXED" + }, + { + "name":"spdy", + "status":"SKIPPED" + }, + { + "name":"spdy-transport", + "status":"SKIPPED" + }, + { + "name":"socket.io-v2.3.0", + "status":"PASSED" + }, + { + "name":"split2-v3.1.1", + "status":"PASSED" + }, + { + "name":"stylus", + "status":"SKIPPED" + }, + { + "name":"tape-v5.0.1", + "status":"PASSED" + }, + { + "name":"thread-sleep-v2.2.0", + "status":"PASSED" + }, + { + "name":"sqlite3-v4.2.0", + "status":"PASSED" + }, + { + "name":"throughv-v1.0.4", + "status":"PASSED" + }, + { + "name":"time", + "status":"SKIPPED" + }, + { + "name":"torrent-stream-v1.2.0", + "status":"PASSED" + }, + { + "name":"uglify-js-v3.10.0", + "status":"PASSED" + }, + { + "name":"underscore-v1.10.2", + "status":"PASSED" + }, + { + "name":"uuid-v8.2.0", + "status":"PASSED" + }, + { + "name":"vinyl-v2.2.0", + "status":"PASSED" + }, + { + "name":"vinyl-fs", + "status":"SKIPPED" + }, + { + "name":"watchify-v3.11.1", + "status":"PASSED" + }, + { + "name":"weak", + "status":"SKIPPED" + }, + { + "name":"winston-v3.3.3", + "status":"PASSED" + }, + { + "name":"ws-v7.3.0", + "status":"PASSED" + }, + { + "name":"yargs-v15.3.1", + "status":"PASSED" + }, + { + "name":"yeoman-generator-v4.11.0", + "status":"PASSED" + }, + { + "name":"zeromq", + "status":"SKIPPED" + }, + { + "name":"through2-v4.0.2", + "status":"FAILED" + } + ] + } + ] + } + }, + { + "child":{ + "_class":"hudson.matrix.MatrixRun", + "url":"https://ci.nodejs.org/job/citgm-smoker/nodes=ubuntu1604-64/2400/" + }, + "result":{ + "_class":"hudson.tasks.junit.TestResult", + "suites":[ + { + "cases":[ + { + "name":"JSONStream-v1.3.5", + "status":"PASSED" + }, + { + "name":"@nearform/flame-v6.0.1", + "status":"FIXED" + }, + { + "name":"async", + "status":"SKIPPED" + }, + { + "name":"ava", + "status":"SKIPPED" + }, + { + "name":"@nearform/doctor-v5.0.2", + "status":"SKIPPED" + }, + { + "name":"bcrypt-v5.0.0", + "status":"PASSED" + }, + { + "name":"binary-split-v1.0.5", + "status":"PASSED" + }, + { + "name":"bl-v4.0.2", + "status":"PASSED" + }, + { + "name":"blake2b-wasm-v2.1.0", + "status":"PASSED" + }, + { + "name":"@nearform/bubbleprof-v4.0.2", + "status":"FIXED" + }, + { + "name":"acorn-v7.3.1", + "status":"PASSED" + }, + { + "name":"bson", + "status":"SKIPPED" + }, + { + "name":"bufferutil-v4.0.1", + "status":"PASSED" + }, + { + "name":"bluebird-v3.7.2", + "status":"PASSED" + }, + { + "name":"body-parser-v1.19.0", + "status":"PASSED" + }, + { + "name":"cheerio-v1.0.0-rc.3", + "status":"PASSED" + }, + { + "name":"commander", + "status":"SKIPPED" + }, + { + "name":"crc32-stream-v3.0.1", + "status":"PASSED" + }, + { + "name":"csv-parser-v2.3.3", + "status":"PASSED" + }, + { + "name":"david", + "status":"SKIPPED" + }, + { + "name":"browserify-v16.5.1", + "status":"PASSED" + }, + { + "name":"dicer-v0.3.0", + "status":"PASSED" + }, + { + "name":"duplexer2-v0.1.4", + "status":"PASSED" + }, + { + "name":"duplexify-v4.1.1", + "status":"PASSED" + }, + { + "name":"debug-v4.1.1", + "status":"PASSED" + }, + { + "name":"eslint", + "status":"SKIPPED" + }, + { + "name":"eslint-plugin-jest-v23.17.1", + "status":"PASSED" + }, + { + "name":"esprima-v4.0.1", + "status":"PASSED" + }, + { + "name":"express-v4.17.1", + "status":"PASSED" + }, + { + "name":"express-session-v1.17.1", + "status":"PASSED" + }, + { + "name":"clinic-v6.0.2", + "status":"FIXED" + }, + { + "name":"ffi", + "status":"SKIPPED" + }, + { + "name":"flush-write-stream-v2.0.0", + "status":"PASSED" + }, + { + "name":"from2-v2.3.0", + "status":"PASSED" + }, + { + "name":"fs-extra", + "status":"SKIPPED" + }, + { + "name":"full-icu-test-v1.0.3", + "status":"PASSED" + }, + { + "name":"ember-cli-v3.19.0", + "status":"PASSED" + }, + { + "name":"got", + "status":"SKIPPED" + }, + { + "name":"graceful-fs", + "status":"SKIPPED" + }, + { + "name":"fastify-v2.15.1", + "status":"PASSED" + }, + { + "name":"coffeescript-v2.5.1", + "status":"FAILED" + }, + { + "name":"gulp-util-v3.0.8", + "status":"PASSED" + }, + { + "name":"iconv-v3.0.0", + "status":"PASSED" + }, + { + "name":"glob-v7.1.6", + "status":"PASSED" + }, + { + "name":"isarray-v2.0.5", + "status":"PASSED" + }, + { + "name":"gulp-v4.0.2", + "status":"PASSED" + }, + { + "name":"inherits-v2.0.4", + "status":"PASSED" + }, + { + "name":"koa-v2.13.0", + "status":"PASSED" + }, + { + "name":"libxmljs", + "status":"SKIPPED" + }, + { + "name":"level-v6.0.1", + "status":"PASSED" + }, + { + "name":"jquery-v3.5.1", + "status":"SKIPPED" + }, + { + "name":"microtime-v3.0.0", + "status":"PASSED" + }, + { + "name":"leveldown-v5.6.0", + "status":"PASSED" + }, + { + "name":"mkdirp", + "status":"SKIPPED" + }, + { + "name":"mocha", + "status":"SKIPPED" + }, + { + "name":"moment", + "status":"SKIPPED" + }, + { + "name":"mime-v2.4.6", + "status":"PASSED" + }, + { + "name":"lodash-v4.17.15", + "status":"PASSED" + }, + { + "name":"minimist-v1.2.5", + "status":"PASSED" + }, + { + "name":"multer-v1.4.2", + "status":"PASSED" + }, + { + "name":"node-sass", + "status":"SKIPPED" + }, + { + "name":"node-report-v2.2.10", + "status":"PASSED" + }, + { + "name":"nan-v2.14.1", + "status":"PASSED" + }, + { + "name":"node-gyp-v7.0.0", + "status":"FIXED" + }, + { + "name":"pumpify-v2.0.1", + "status":"PASSED" + }, + { + "name":"q-v1.5.1", + "status":"PASSED" + }, + { + "name":"pug-v3.0.0", + "status":"PASSED" + }, + { + "name":"react", + "status":"SKIPPED" + }, + { + "name":"readable-stream", + "status":"SKIPPED" + }, + { + "name":"ref", + "status":"SKIPPED" + }, + { + "name":"path-to-regexp-v6.1.0", + "status":"PASSED" + }, + { + "name":"pino-v6.3.2", + "status":"FIXED" + }, + { + "name":"rewire-v5.0.0", + "status":"PASSED" + }, + { + "name":"radium-v0.26.0", + "status":"PASSED" + }, + { + "name":"resolve-v1.17.0", + "status":"FIXED" + }, + { + "name":"rimraf-v3.0.2", + "status":"PASSED" + }, + { + "name":"router-v1.3.5", + "status":"PASSED" + }, + { + "name":"shot-v4.0.7", + "status":"FIXED" + }, + { + "name":"sax-v1.2.4", + "status":"PASSED" + }, + { + "name":"semver-v7.3.2", + "status":"FIXED" + }, + { + "name":"spdy", + "status":"SKIPPED" + }, + { + "name":"spdy-transport", + "status":"SKIPPED" + }, + { + "name":"socket.io-v2.3.0", + "status":"PASSED" + }, + { + "name":"spawn-wrap-v2.0.0", + "status":"PASSED" + }, + { + "name":"stylus", + "status":"SKIPPED" + }, + { + "name":"serialport-v9.0.0", + "status":"PASSED" + }, + { + "name":"thread-sleep-v2.2.0", + "status":"PASSED" + }, + { + "name":"split2-v3.1.1", + "status":"PASSED" + }, + { + "name":"throughv-v1.0.4", + "status":"PASSED" + }, + { + "name":"time", + "status":"SKIPPED" + }, + { + "name":"tape-v5.0.1", + "status":"PASSED" + }, + { + "name":"torrent-stream-v1.2.0", + "status":"PASSED" + }, + { + "name":"underscore-v1.10.2", + "status":"PASSED" + }, + { + "name":"sqlite3-v4.2.0", + "status":"PASSED" + }, + { + "name":"vinyl-v2.2.0", + "status":"PASSED" + }, + { + "name":"vinyl-fs", + "status":"SKIPPED" + }, + { + "name":"uuid-v8.2.0", + "status":"PASSED" + }, + { + "name":"weak", + "status":"SKIPPED" + }, + { + "name":"watchify-v3.11.1", + "status":"PASSED" + }, + { + "name":"ws-v7.3.0", + "status":"PASSED" + }, + { + "name":"winston-v3.3.3", + "status":"PASSED" + }, + { + "name":"yargs-v15.3.1", + "status":"PASSED" + }, + { + "name":"zeromq", + "status":"SKIPPED" + }, + { + "name":"uglify-js-v3.10.0", + "status":"PASSED" + }, + { + "name":"yeoman-generator-v4.11.0", + "status":"PASSED" + }, + { + "name":"through2-v4.0.2", + "status":"FAILED" + } + ] + } + ] + } + }, + { + "child":{ + "_class":"hudson.matrix.MatrixRun", + "url":"https://ci.nodejs.org/job/citgm-smoker/nodes=osx1014/2400/" + }, + "result":{ + "_class":"hudson.tasks.junit.TestResult", + "suites":[ + { + "cases":[ + { + "name":"JSONStream-v1.3.5", + "status":"PASSED" + }, + { + "name":"@nearform/flame-v6.0.1", + "status":"SKIPPED" + }, + { + "name":"async", + "status":"SKIPPED" + }, + { + "name":"ava", + "status":"SKIPPED" + }, + { + "name":"@nearform/doctor-v5.0.2", + "status":"SKIPPED" + }, + { + "name":"bcrypt-v5.0.0", + "status":"PASSED" + }, + { + "name":"@nearform/bubbleprof-v4.0.2", + "status":"FIXED" + }, + { + "name":"binary-split-v1.0.5", + "status":"PASSED" + }, + { + "name":"bl-v4.0.2", + "status":"PASSED" + }, + { + "name":"blake2b-wasm-v2.1.0", + "status":"PASSED" + }, + { + "name":"bluebird-v3.7.2", + "status":"PASSED" + }, + { + "name":"bson", + "status":"SKIPPED" + }, + { + "name":"body-parser-v1.19.0", + "status":"PASSED" + }, + { + "name":"bufferutil-v4.0.1", + "status":"PASSED" + }, + { + "name":"cheerio-v1.0.0-rc.3", + "status":"PASSED" + }, + { + "name":"acorn-v7.3.1", + "status":"FAILED" + }, + { + "name":"commander", + "status":"SKIPPED" + }, + { + "name":"crc32-stream-v3.0.1", + "status":"PASSED" + }, + { + "name":"browserify-v16.5.1", + "status":"PASSED" + }, + { + "name":"david", + "status":"SKIPPED" + }, + { + "name":"csv-parser-v2.3.3", + "status":"PASSED" + }, + { + "name":"dicer-v0.3.0", + "status":"PASSED" + }, + { + "name":"duplexer2-v0.1.4", + "status":"PASSED" + }, + { + "name":"duplexify-v4.1.1", + "status":"PASSED" + }, + { + "name":"debug-v4.1.1", + "status":"PASSED" + }, + { + "name":"eslint", + "status":"SKIPPED" + }, + { + "name":"coffeescript-v2.5.1", + "status":"FAILED" + }, + { + "name":"clinic-v6.0.2", + "status":"FAILED" + }, + { + "name":"express-v4.17.1", + "status":"PASSED" + }, + { + "name":"eslint-plugin-jest-v23.17.1", + "status":"FIXED" + }, + { + "name":"express-session-v1.17.1", + "status":"PASSED" + }, + { + "name":"ffi", + "status":"SKIPPED" + }, + { + "name":"flush-write-stream-v2.0.0", + "status":"PASSED" + }, + { + "name":"from2-v2.3.0", + "status":"PASSED" + }, + { + "name":"fs-extra", + "status":"SKIPPED" + }, + { + "name":"full-icu-test-v1.0.3", + "status":"PASSED" + }, + { + "name":"esprima-v4.0.1", + "status":"PASSED" + }, + { + "name":"got", + "status":"SKIPPED" + }, + { + "name":"graceful-fs", + "status":"SKIPPED" + }, + { + "name":"fastify-v2.15.1", + "status":"PASSED" + }, + { + "name":"ember-cli-v3.19.0", + "status":"FAILED" + }, + { + "name":"glob-v7.1.6", + "status":"PASSED" + }, + { + "name":"gulp-v4.0.2", + "status":"FIXED" + }, + { + "name":"isarray-v2.0.5", + "status":"PASSED" + }, + { + "name":"iconv-v3.0.0", + "status":"PASSED" + }, + { + "name":"inherits-v2.0.4", + "status":"PASSED" + }, + { + "name":"gulp-util-v3.0.8", + "status":"PASSED" + }, + { + "name":"koa-v2.13.0", + "status":"PASSED" + }, + { + "name":"libxmljs", + "status":"SKIPPED" + }, + { + "name":"level-v6.0.1", + "status":"PASSED" + }, + { + "name":"jquery-v3.5.1", + "status":"SKIPPED" + }, + { + "name":"mime-v2.4.6", + "status":"PASSED" + }, + { + "name":"microtime-v3.0.0", + "status":"PASSED" + }, + { + "name":"mkdirp", + "status":"SKIPPED" + }, + { + "name":"mocha", + "status":"SKIPPED" + }, + { + "name":"moment", + "status":"SKIPPED" + }, + { + "name":"minimist-v1.2.5", + "status":"PASSED" + }, + { + "name":"lodash-v4.17.15", + "status":"PASSED" + }, + { + "name":"multer-v1.4.2", + "status":"PASSED" + }, + { + "name":"leveldown-v5.6.0", + "status":"PASSED" + }, + { + "name":"node-sass", + "status":"SKIPPED" + }, + { + "name":"nan-v2.14.1", + "status":"PASSED" + }, + { + "name":"node-report-v2.2.10", + "status":"PASSED" + }, + { + "name":"node-gyp-v7.0.0", + "status":"FIXED" + }, + { + "name":"pumpify-v2.0.1", + "status":"PASSED" + }, + { + "name":"q-v1.5.1", + "status":"PASSED" + }, + { + "name":"pug-v3.0.0", + "status":"PASSED" + }, + { + "name":"react", + "status":"SKIPPED" + }, + { + "name":"readable-stream", + "status":"SKIPPED" + }, + { + "name":"ref", + "status":"SKIPPED" + }, + { + "name":"path-to-regexp-v6.1.0", + "status":"PASSED" + }, + { + "name":"pino-v6.3.2", + "status":"FIXED" + }, + { + "name":"rewire-v5.0.0", + "status":"PASSED" + }, + { + "name":"radium-v0.26.0", + "status":"PASSED" + }, + { + "name":"resolve-v1.17.0", + "status":"FIXED" + }, + { + "name":"rimraf-v3.0.2", + "status":"PASSED" + }, + { + "name":"router-v1.3.5", + "status":"PASSED" + }, + { + "name":"sax-v1.2.4", + "status":"PASSED" + }, + { + "name":"shot-v4.0.7", + "status":"FIXED" + }, + { + "name":"semver-v7.3.2", + "status":"FAILED" + }, + { + "name":"spdy", + "status":"SKIPPED" + }, + { + "name":"spdy-transport", + "status":"SKIPPED" + }, + { + "name":"spawn-wrap-v2.0.0", + "status":"PASSED" + }, + { + "name":"serialport-v9.0.0", + "status":"PASSED" + }, + { + "name":"stylus", + "status":"SKIPPED" + }, + { + "name":"socket.io-v2.3.0", + "status":"PASSED" + }, + { + "name":"thread-sleep-v2.2.0", + "status":"PASSED" + }, + { + "name":"split2-v3.1.1", + "status":"PASSED" + }, + { + "name":"throughv-v1.0.4", + "status":"PASSED" + }, + { + "name":"time", + "status":"SKIPPED" + }, + { + "name":"tape-v5.0.1", + "status":"PASSED" + }, + { + "name":"torrent-stream-v1.2.0", + "status":"PASSED" + }, + { + "name":"through2-v4.0.2", + "status":"PASSED" + }, + { + "name":"underscore-v1.10.2", + "status":"FIXED" + }, + { + "name":"sqlite3-v4.2.0", + "status":"PASSED" + }, + { + "name":"vinyl-fs", + "status":"SKIPPED" + }, + { + "name":"uuid-v8.2.0", + "status":"PASSED" + }, + { + "name":"weak", + "status":"SKIPPED" + }, + { + "name":"vinyl-v2.2.0", + "status":"PASSED" + }, + { + "name":"watchify-v3.11.1", + "status":"FAILED" + }, + { + "name":"winston-v3.3.3", + "status":"SKIPPED" + }, + { + "name":"ws-v7.3.0", + "status":"PASSED" + }, + { + "name":"zeromq", + "status":"SKIPPED" + }, + { + "name":"uglify-js-v3.10.0", + "status":"PASSED" + }, + { + "name":"yargs-v15.3.1", + "status":"PASSED" + }, + { + "name":"yeoman-generator-v4.11.0", + "status":"PASSED" + } + ] + } + ] + } + }, + { + "child":{ + "_class":"hudson.matrix.MatrixRun", + "url":"https://ci.nodejs.org/job/citgm-smoker/nodes=ubuntu1804-64/2400/" + }, + "result":{ + "_class":"hudson.tasks.junit.TestResult", + "suites":[ + { + "cases":[ + { + "name":"@nearform/doctor-v5.0.2", + "status":"SKIPPED" + }, + { + "name":"@nearform/bubbleprof-v4.0.2", + "status":"FIXED" + }, + { + "name":"JSONStream-v1.3.5", + "status":"PASSED" + }, + { + "name":"@nearform/flame-v6.0.1", + "status":"SKIPPED" + }, + { + "name":"async", + "status":"SKIPPED" + }, + { + "name":"ava", + "status":"SKIPPED" + }, + { + "name":"bcrypt-v5.0.0", + "status":"PASSED" + }, + { + "name":"binary-split-v1.0.5", + "status":"PASSED" + }, + { + "name":"bl-v4.0.2", + "status":"PASSED" + }, + { + "name":"blake2b-wasm-v2.1.0", + "status":"PASSED" + }, + { + "name":"acorn-v7.3.1", + "status":"PASSED" + }, + { + "name":"bluebird-v3.7.2", + "status":"PASSED" + }, + { + "name":"body-parser-v1.19.0", + "status":"PASSED" + }, + { + "name":"bson", + "status":"SKIPPED" + }, + { + "name":"bufferutil-v4.0.1", + "status":"PASSED" + }, + { + "name":"cheerio-v1.0.0-rc.3", + "status":"PASSED" + }, + { + "name":"browserify-v16.5.1", + "status":"PASSED" + }, + { + "name":"clinic-v6.0.2", + "status":"FIXED" + }, + { + "name":"commander", + "status":"SKIPPED" + }, + { + "name":"crc32-stream-v3.0.1", + "status":"PASSED" + }, + { + "name":"csv-parser-v2.3.3", + "status":"PASSED" + }, + { + "name":"david", + "status":"SKIPPED" + }, + { + "name":"debug-v4.1.1", + "status":"PASSED" + }, + { + "name":"dicer-v0.3.0", + "status":"PASSED" + }, + { + "name":"duplexer2-v0.1.4", + "status":"PASSED" + }, + { + "name":"duplexify-v4.1.1", + "status":"PASSED" + }, + { + "name":"ember-cli-v3.19.0", + "status":"PASSED" + }, + { + "name":"eslint", + "status":"SKIPPED" + }, + { + "name":"coffeescript-v2.5.1", + "status":"FAILED" + }, + { + "name":"esprima-v4.0.1", + "status":"PASSED" + }, + { + "name":"eslint-plugin-jest-v23.17.1", + "status":"PASSED" + }, + { + "name":"express-v4.17.1", + "status":"PASSED" + }, + { + "name":"express-session-v1.17.1", + "status":"PASSED" + }, + { + "name":"ffi", + "status":"SKIPPED" + }, + { + "name":"flush-write-stream-v2.0.0", + "status":"PASSED" + }, + { + "name":"from2-v2.3.0", + "status":"PASSED" + }, + { + "name":"fs-extra", + "status":"SKIPPED" + }, + { + "name":"full-icu-test-v1.0.3", + "status":"PASSED" + }, + { + "name":"glob-v7.1.6", + "status":"PASSED" + }, + { + "name":"got", + "status":"SKIPPED" + }, + { + "name":"graceful-fs", + "status":"SKIPPED" + }, + { + "name":"fastify-v2.15.1", + "status":"PASSED" + }, + { + "name":"gulp-util-v3.0.8", + "status":"PASSED" + }, + { + "name":"iconv-v3.0.0", + "status":"PASSED" + }, + { + "name":"gulp-v4.0.2", + "status":"PASSED" + }, + { + "name":"isarray-v2.0.5", + "status":"PASSED" + }, + { + "name":"inherits-v2.0.4", + "status":"PASSED" + }, + { + "name":"koa-v2.13.0", + "status":"PASSED" + }, + { + "name":"jquery-v3.5.1", + "status":"SKIPPED" + }, + { + "name":"level-v6.0.1", + "status":"PASSED" + }, + { + "name":"libxmljs", + "status":"SKIPPED" + }, + { + "name":"lodash-v4.17.15", + "status":"PASSED" + }, + { + "name":"leveldown-v5.6.0", + "status":"PASSED" + }, + { + "name":"mime-v2.4.6", + "status":"PASSED" + }, + { + "name":"microtime-v3.0.0", + "status":"PASSED" + }, + { + "name":"mkdirp", + "status":"SKIPPED" + }, + { + "name":"mocha", + "status":"SKIPPED" + }, + { + "name":"moment", + "status":"SKIPPED" + }, + { + "name":"minimist-v1.2.5", + "status":"PASSED" + }, + { + "name":"multer-v1.4.2", + "status":"PASSED" + }, + { + "name":"node-gyp-v7.0.0", + "status":"FIXED" + }, + { + "name":"nan-v2.14.1", + "status":"PASSED" + }, + { + "name":"node-sass", + "status":"SKIPPED" + }, + { + "name":"node-report-v2.2.10", + "status":"PASSED" + }, + { + "name":"path-to-regexp-v6.1.0", + "status":"PASSED" + }, + { + "name":"pino-v6.3.2", + "status":"FIXED" + }, + { + "name":"pumpify-v2.0.1", + "status":"PASSED" + }, + { + "name":"q-v1.5.1", + "status":"PASSED" + }, + { + "name":"pug-v3.0.0", + "status":"PASSED" + }, + { + "name":"react", + "status":"SKIPPED" + }, + { + "name":"readable-stream", + "status":"SKIPPED" + }, + { + "name":"ref", + "status":"SKIPPED" + }, + { + "name":"radium-v0.26.0", + "status":"PASSED" + }, + { + "name":"resolve-v1.17.0", + "status":"FIXED" + }, + { + "name":"rewire-v5.0.0", + "status":"PASSED" + }, + { + "name":"rimraf-v3.0.2", + "status":"PASSED" + }, + { + "name":"router-v1.3.5", + "status":"PASSED" + }, + { + "name":"sax-v1.2.4", + "status":"PASSED" + }, + { + "name":"semver-v7.3.2", + "status":"FIXED" + }, + { + "name":"serialport-v9.0.0", + "status":"PASSED" + }, + { + "name":"shot-v4.0.7", + "status":"FIXED" + }, + { + "name":"spawn-wrap-v2.0.0", + "status":"PASSED" + }, + { + "name":"spdy", + "status":"SKIPPED" + }, + { + "name":"spdy-transport", + "status":"SKIPPED" + }, + { + "name":"socket.io-v2.3.0", + "status":"PASSED" + }, + { + "name":"split2-v3.1.1", + "status":"PASSED" + }, + { + "name":"stylus", + "status":"SKIPPED" + }, + { + "name":"tape-v5.0.1", + "status":"PASSED" + }, + { + "name":"thread-sleep-v2.2.0", + "status":"PASSED" + }, + { + "name":"sqlite3-v4.2.0", + "status":"PASSED" + }, + { + "name":"throughv-v1.0.4", + "status":"PASSED" + }, + { + "name":"time", + "status":"SKIPPED" + }, + { + "name":"torrent-stream-v1.2.0", + "status":"PASSED" + }, + { + "name":"uglify-js-v3.10.0", + "status":"PASSED" + }, + { + "name":"underscore-v1.10.2", + "status":"PASSED" + }, + { + "name":"uuid-v8.2.0", + "status":"PASSED" + }, + { + "name":"vinyl-v2.2.0", + "status":"PASSED" + }, + { + "name":"vinyl-fs", + "status":"SKIPPED" + }, + { + "name":"watchify-v3.11.1", + "status":"PASSED" + }, + { + "name":"weak", + "status":"SKIPPED" + }, + { + "name":"winston-v3.3.3", + "status":"PASSED" + }, + { + "name":"ws-v7.3.0", + "status":"PASSED" + }, + { + "name":"yargs-v15.3.1", + "status":"PASSED" + }, + { + "name":"through2-v4.0.2", + "status":"FAILED" + }, + { + "name":"zeromq", + "status":"SKIPPED" + }, + { + "name":"yeoman-generator-v4.11.0", + "status":"PASSED" + } + ] + } + ] + } + }, + { + "child":{ + "_class":"hudson.matrix.MatrixRun", + "url":"https://ci.nodejs.org/job/citgm-smoker/nodes=fedora-last-latest-x64/2400/" + }, + "result":{ + "_class":"hudson.tasks.junit.TestResult", + "suites":[ + { + "cases":[ + { + "name":"@nearform/doctor-v5.0.2", + "status":"SKIPPED" + }, + { + "name":"@nearform/bubbleprof-v4.0.2", + "status":"FIXED" + }, + { + "name":"JSONStream-v1.3.5", + "status":"PASSED" + }, + { + "name":"@nearform/flame-v6.0.1", + "status":"SKIPPED" + }, + { + "name":"async", + "status":"SKIPPED" + }, + { + "name":"ava", + "status":"SKIPPED" + }, + { + "name":"bcrypt-v5.0.0", + "status":"PASSED" + }, + { + "name":"binary-split-v1.0.5", + "status":"PASSED" + }, + { + "name":"acorn-v7.3.1", + "status":"PASSED" + }, + { + "name":"bl-v4.0.2", + "status":"PASSED" + }, + { + "name":"blake2b-wasm-v2.1.0", + "status":"PASSED" + }, + { + "name":"bluebird-v3.7.2", + "status":"PASSED" + }, + { + "name":"body-parser-v1.19.0", + "status":"PASSED" + }, + { + "name":"bson", + "status":"SKIPPED" + }, + { + "name":"bufferutil-v4.0.1", + "status":"PASSED" + }, + { + "name":"cheerio-v1.0.0-rc.3", + "status":"PASSED" + }, + { + "name":"browserify-v16.5.1", + "status":"PASSED" + }, + { + "name":"clinic-v6.0.2", + "status":"FIXED" + }, + { + "name":"commander", + "status":"SKIPPED" + }, + { + "name":"crc32-stream-v3.0.1", + "status":"PASSED" + }, + { + "name":"csv-parser-v2.3.3", + "status":"PASSED" + }, + { + "name":"david", + "status":"SKIPPED" + }, + { + "name":"debug-v4.1.1", + "status":"PASSED" + }, + { + "name":"dicer-v0.3.0", + "status":"PASSED" + }, + { + "name":"duplexer2-v0.1.4", + "status":"PASSED" + }, + { + "name":"duplexify-v4.1.1", + "status":"PASSED" + }, + { + "name":"coffeescript-v2.5.1", + "status":"FAILED" + }, + { + "name":"eslint", + "status":"SKIPPED" + }, + { + "name":"eslint-plugin-jest-v23.17.1", + "status":"PASSED" + }, + { + "name":"ember-cli-v3.19.0", + "status":"PASSED" + }, + { + "name":"esprima-v4.0.1", + "status":"PASSED" + }, + { + "name":"express-v4.17.1", + "status":"PASSED" + }, + { + "name":"express-session-v1.17.1", + "status":"PASSED" + }, + { + "name":"ffi", + "status":"SKIPPED" + }, + { + "name":"flush-write-stream-v2.0.0", + "status":"PASSED" + }, + { + "name":"from2-v2.3.0", + "status":"PASSED" + }, + { + "name":"fs-extra", + "status":"SKIPPED" + }, + { + "name":"full-icu-test-v1.0.3", + "status":"PASSED" + }, + { + "name":"glob-v7.1.6", + "status":"PASSED" + }, + { + "name":"got", + "status":"SKIPPED" + }, + { + "name":"graceful-fs", + "status":"SKIPPED" + }, + { + "name":"fastify-v2.15.1", + "status":"PASSED" + }, + { + "name":"gulp-util-v3.0.8", + "status":"PASSED" + }, + { + "name":"gulp-v4.0.2", + "status":"PASSED" + }, + { + "name":"iconv-v3.0.0", + "status":"PASSED" + }, + { + "name":"isarray-v2.0.5", + "status":"PASSED" + }, + { + "name":"inherits-v2.0.4", + "status":"PASSED" + }, + { + "name":"koa-v2.13.0", + "status":"PASSED" + }, + { + "name":"jquery-v3.5.1", + "status":"SKIPPED" + }, + { + "name":"level-v6.0.1", + "status":"PASSED" + }, + { + "name":"libxmljs", + "status":"SKIPPED" + }, + { + "name":"leveldown-v5.6.0", + "status":"PASSED" + }, + { + "name":"lodash-v4.17.15", + "status":"PASSED" + }, + { + "name":"microtime-v3.0.0", + "status":"PASSED" + }, + { + "name":"mime-v2.4.6", + "status":"PASSED" + }, + { + "name":"mkdirp", + "status":"SKIPPED" + }, + { + "name":"mocha", + "status":"SKIPPED" + }, + { + "name":"moment", + "status":"SKIPPED" + }, + { + "name":"minimist-v1.2.5", + "status":"PASSED" + }, + { + "name":"multer-v1.4.2", + "status":"PASSED" + }, + { + "name":"node-gyp-v7.0.0", + "status":"FIXED" + }, + { + "name":"nan-v2.14.1", + "status":"PASSED" + }, + { + "name":"node-sass", + "status":"SKIPPED" + }, + { + "name":"node-report-v2.2.10", + "status":"PASSED" + }, + { + "name":"path-to-regexp-v6.1.0", + "status":"PASSED" + }, + { + "name":"pino-v6.3.2", + "status":"FIXED" + }, + { + "name":"pumpify-v2.0.1", + "status":"PASSED" + }, + { + "name":"q-v1.5.1", + "status":"PASSED" + }, + { + "name":"pug-v3.0.0", + "status":"PASSED" + }, + { + "name":"react", + "status":"SKIPPED" + }, + { + "name":"readable-stream", + "status":"SKIPPED" + }, + { + "name":"ref", + "status":"SKIPPED" + }, + { + "name":"resolve-v1.17.0", + "status":"FIXED" + }, + { + "name":"radium-v0.26.0", + "status":"PASSED" + }, + { + "name":"rewire-v5.0.0", + "status":"PASSED" + }, + { + "name":"rimraf-v3.0.2", + "status":"PASSED" + }, + { + "name":"router-v1.3.5", + "status":"PASSED" + }, + { + "name":"sax-v1.2.4", + "status":"PASSED" + }, + { + "name":"semver-v7.3.2", + "status":"FIXED" + }, + { + "name":"serialport-v9.0.0", + "status":"PASSED" + }, + { + "name":"shot-v4.0.7", + "status":"FIXED" + }, + { + "name":"spawn-wrap-v2.0.0", + "status":"PASSED" + }, + { + "name":"spdy", + "status":"SKIPPED" + }, + { + "name":"spdy-transport", + "status":"SKIPPED" + }, + { + "name":"socket.io-v2.3.0", + "status":"PASSED" + }, + { + "name":"split2-v3.1.1", + "status":"PASSED" + }, + { + "name":"stylus", + "status":"SKIPPED" + }, + { + "name":"tape-v5.0.1", + "status":"PASSED" + }, + { + "name":"thread-sleep-v2.2.0", + "status":"PASSED" + }, + { + "name":"sqlite3-v4.2.0", + "status":"PASSED" + }, + { + "name":"throughv-v1.0.4", + "status":"PASSED" + }, + { + "name":"time", + "status":"SKIPPED" + }, + { + "name":"torrent-stream-v1.2.0", + "status":"PASSED" + }, + { + "name":"uglify-js-v3.10.0", + "status":"PASSED" + }, + { + "name":"underscore-v1.10.2", + "status":"PASSED" + }, + { + "name":"uuid-v8.2.0", + "status":"PASSED" + }, + { + "name":"vinyl-v2.2.0", + "status":"PASSED" + }, + { + "name":"vinyl-fs", + "status":"SKIPPED" + }, + { + "name":"watchify-v3.11.1", + "status":"PASSED" + }, + { + "name":"weak", + "status":"SKIPPED" + }, + { + "name":"through2-v4.0.2", + "status":"FAILED" + }, + { + "name":"winston-v3.3.3", + "status":"PASSED" + }, + { + "name":"ws-v7.3.0", + "status":"PASSED" + }, + { + "name":"yargs-v15.3.1", + "status":"PASSED" + }, + { + "name":"zeromq", + "status":"SKIPPED" + }, + { + "name":"yeoman-generator-v4.11.0", + "status":"PASSED" + } + ] + } + ] + } + }, + { + "child":{ + "_class":"hudson.matrix.MatrixRun", + "url":"https://ci.nodejs.org/job/citgm-smoker/nodes=centos7-ppcle/2400/" + }, + "result":{ + "_class":"hudson.tasks.junit.TestResult", + "suites":[ + { + "cases":[ + { + "name":"JSONStream-v1.3.5", + "status":"PASSED" + }, + { + "name":"acorn", + "status":"SKIPPED" + }, + { + "name":"async", + "status":"SKIPPED" + }, + { + "name":"ava", + "status":"SKIPPED" + }, + { + "name":"bcrypt-v5.0.0", + "status":"PASSED" + }, + { + "name":"binary-split-v1.0.5", + "status":"PASSED" + }, + { + "name":"bl-v4.0.2", + "status":"PASSED" + }, + { + "name":"blake2b-wasm-v2.1.0", + "status":"PASSED" + }, + { + "name":"@nearform/doctor-v5.0.2", + "status":"SKIPPED" + }, + { + "name":"@nearform/flame-v6.0.1", + "status":"SKIPPED" + }, + { + "name":"body-parser-v1.19.0", + "status":"PASSED" + }, + { + "name":"bson", + "status":"SKIPPED" + }, + { + "name":"bluebird-v3.7.2", + "status":"PASSED" + }, + { + "name":"bufferutil-v4.0.1", + "status":"PASSED" + }, + { + "name":"cheerio-v1.0.0-rc.3", + "status":"PASSED" + }, + { + "name":"@nearform/bubbleprof-v4.0.2", + "status":"FIXED" + }, + { + "name":"commander", + "status":"SKIPPED" + }, + { + "name":"browserify-v16.5.1", + "status":"PASSED" + }, + { + "name":"crc32-stream-v3.0.1", + "status":"PASSED" + }, + { + "name":"david", + "status":"SKIPPED" + }, + { + "name":"debug", + "status":"SKIPPED" + }, + { + "name":"dicer-v0.3.0", + "status":"PASSED" + }, + { + "name":"duplexer2-v0.1.4", + "status":"PASSED" + }, + { + "name":"duplexify-v4.1.1", + "status":"PASSED" + }, + { + "name":"csv-parser-v2.3.3", + "status":"PASSED" + }, + { + "name":"eslint", + "status":"SKIPPED" + }, + { + "name":"eslint-plugin-jest-v23.17.1", + "status":"PASSED" + }, + { + "name":"esprima-v4.0.1", + "status":"PASSED" + }, + { + "name":"express-v4.17.1", + "status":"PASSED" + }, + { + "name":"express-session-v1.17.1", + "status":"FIXED" + }, + { + "name":"ember-cli-v3.19.0", + "status":"FIXED" + }, + { + "name":"ffi", + "status":"SKIPPED" + }, + { + "name":"fastify-v2.15.1", + "status":"PASSED" + }, + { + "name":"coffeescript-v2.5.1", + "status":"FAILED" + }, + { + "name":"fs-extra", + "status":"SKIPPED" + }, + { + "name":"clinic-v6.0.2", + "status":"FAILED" + }, + { + "name":"full-icu-test-v1.0.3", + "status":"PASSED" + }, + { + "name":"got", + "status":"SKIPPED" + }, + { + "name":"graceful-fs", + "status":"SKIPPED" + }, + { + "name":"from2-v2.3.0", + "status":"PASSED" + }, + { + "name":"flush-write-stream-v2.0.0", + "status":"PASSED" + }, + { + "name":"gulp-util-v3.0.8", + "status":"PASSED" + }, + { + "name":"iconv-v3.0.0", + "status":"PASSED" + }, + { + "name":"isarray-v2.0.5", + "status":"PASSED" + }, + { + "name":"glob-v7.1.6", + "status":"PASSED" + }, + { + "name":"inherits-v2.0.4", + "status":"PASSED" + }, + { + "name":"gulp-v4.0.2", + "status":"SKIPPED" + }, + { + "name":"koa-v2.13.0", + "status":"PASSED" + }, + { + "name":"libxmljs", + "status":"SKIPPED" + }, + { + "name":"jquery-v3.5.1", + "status":"SKIPPED" + }, + { + "name":"microtime-v3.0.0", + "status":"PASSED" + }, + { + "name":"lodash-v4.17.15", + "status":"PASSED" + }, + { + "name":"mime-v2.4.6", + "status":"PASSED" + }, + { + "name":"mkdirp", + "status":"SKIPPED" + }, + { + "name":"mocha", + "status":"SKIPPED" + }, + { + "name":"moment", + "status":"SKIPPED" + }, + { + "name":"minimist-v1.2.5", + "status":"PASSED" + }, + { + "name":"multer-v1.4.2", + "status":"PASSED" + }, + { + "name":"level-v6.0.1", + "status":"PASSED" + }, + { + "name":"node-report-v2.2.10", + "status":"PASSED" + }, + { + "name":"node-sass", + "status":"SKIPPED" + }, + { + "name":"nan-v2.14.1", + "status":"PASSED" + }, + { + "name":"node-gyp-v7.0.0", + "status":"FIXED" + }, + { + "name":"pug-v3.0.0", + "status":"PASSED" + }, + { + "name":"pumpify-v2.0.1", + "status":"PASSED" + }, + { + "name":"pino-v6.3.2", + "status":"FIXED" + }, + { + "name":"q-v1.5.1", + "status":"PASSED" + }, + { + "name":"react", + "status":"SKIPPED" + }, + { + "name":"readable-stream", + "status":"SKIPPED" + }, + { + "name":"ref", + "status":"SKIPPED" + }, + { + "name":"resolve-v1.17.0", + "status":"FIXED" + }, + { + "name":"leveldown-v5.6.0", + "status":"PASSED" + }, + { + "name":"radium-v0.26.0", + "status":"PASSED" + }, + { + "name":"rewire-v5.0.0", + "status":"PASSED" + }, + { + "name":"rimraf-v3.0.2", + "status":"PASSED" + }, + { + "name":"router-v1.3.5", + "status":"PASSED" + }, + { + "name":"sax-v1.2.4", + "status":"PASSED" + }, + { + "name":"path-to-regexp-v6.1.0", + "status":"PASSED" + }, + { + "name":"semver-v7.3.2", + "status":"FIXED" + }, + { + "name":"shot-v4.0.7", + "status":"FIXED" + }, + { + "name":"spdy", + "status":"SKIPPED" + }, + { + "name":"spdy-transport", + "status":"SKIPPED" + }, + { + "name":"serialport-v9.0.0", + "status":"SKIPPED" + }, + { + "name":"spawn-wrap-v2.0.0", + "status":"PASSED" + }, + { + "name":"stylus", + "status":"SKIPPED" + }, + { + "name":"split2-v3.1.1", + "status":"PASSED" + }, + { + "name":"socket.io-v2.3.0", + "status":"FIXED" + }, + { + "name":"thread-sleep-v2.2.0", + "status":"PASSED" + }, + { + "name":"throughv-v1.0.4", + "status":"PASSED" + }, + { + "name":"time", + "status":"SKIPPED" + }, + { + "name":"tape-v5.0.1", + "status":"PASSED" + }, + { + "name":"torrent-stream-v1.2.0", + "status":"FAILED" + }, + { + "name":"underscore-v1.10.2", + "status":"PASSED" + }, + { + "name":"uuid-v8.2.0", + "status":"PASSED" + }, + { + "name":"vinyl-v2.2.0", + "status":"PASSED" + }, + { + "name":"vinyl-fs", + "status":"SKIPPED" + }, + { + "name":"uglify-js-v3.10.0", + "status":"PASSED" + }, + { + "name":"weak", + "status":"SKIPPED" + }, + { + "name":"watchify-v3.11.1", + "status":"PASSED" + }, + { + "name":"winston-v3.3.3", + "status":"SKIPPED" + }, + { + "name":"ws-v7.3.0", + "status":"PASSED" + }, + { + "name":"yargs-v15.3.1", + "status":"PASSED" + }, + { + "name":"zeromq", + "status":"SKIPPED" + }, + { + "name":"yeoman-generator-v4.11.0", + "status":"PASSED" + }, + { + "name":"through2-v4.0.2", + "status":"FAILED" + }, + { + "name":"sqlite3-v4.2.0", + "status":"SKIPPED" + } + ] + } + ] + } + } + ] +} \ No newline at end of file diff --git a/test/fixtures/jenkins/citgm/citgm-smoker-2400.json b/test/fixtures/jenkins/citgm/citgm-smoker-2400.json new file mode 100644 index 0000000..1e08647 --- /dev/null +++ b/test/fixtures/jenkins/citgm/citgm-smoker-2400.json @@ -0,0 +1,433 @@ +{ + "_class":"hudson.matrix.MatrixBuild", + "actions":[ + { + "_class":"hudson.model.CauseAction", + "causes":[ + { + "_class":"hudson.model.Cause$UserIdCause", + "shortDescription":"Started by user Shelley Vohr", + "userId":"codebytere", + "userName":"Shelley Vohr" + } + ] + }, + { + + }, + { + + }, + { + + }, + { + + }, + { + "_class":"hudson.plugins.git.util.BuildData", + "buildsByBranchName":{ + "refs/remotes/origin/_jenkins_local_branch":{ + "_class":"hudson.plugins.git.util.Build", + "buildNumber":2400, + "buildResult":null, + "marked":{ + "SHA1":"9ec07f42864cb2446a87916732e91365596fcfa7", + "branch":[ + { + "SHA1":"9ec07f42864cb2446a87916732e91365596fcfa7", + "name":"refs/remotes/origin/_jenkins_local_branch" + } + ] + }, + "revision":{ + "SHA1":"9ec07f42864cb2446a87916732e91365596fcfa7", + "branch":[ + { + "SHA1":"9ec07f42864cb2446a87916732e91365596fcfa7", + "name":"refs/remotes/origin/_jenkins_local_branch" + } + ] + } + } + }, + "lastBuiltRevision":{ + "SHA1":"9ec07f42864cb2446a87916732e91365596fcfa7", + "branch":[ + { + "SHA1":"9ec07f42864cb2446a87916732e91365596fcfa7", + "name":"refs/remotes/origin/_jenkins_local_branch" + } + ] + }, + "remoteUrls":[ + "git@github.com:$GITHUB_ORG/$REPO_NAME.git" + ], + "scmName":"" + }, + { + "_class":"hudson.plugins.git.GitTagAction" + }, + { + + }, + { + "_class":"hudson.model.ParametersAction", + "parameters":[ + { + "_class":"hudson.model.StringParameterValue", + "name":"NODEJS_VERSION", + "value":"14.5.0" + }, + { + "_class":"hudson.model.StringParameterValue", + "name":"NODEJS_MAJOR_VERSION", + "value":"14" + }, + { + "_class":"hudson.model.StringParameterValue", + "name":"GITHUB_ORG", + "value":"nodejs" + }, + { + "_class":"hudson.model.StringParameterValue", + "name":"REPO_NAME", + "value":"node" + }, + { + "_class":"hudson.model.StringParameterValue", + "name":"GIT_REMOTE_REF", + "value":"refs/pull/34093/head" + }, + { + "_class":"hudson.model.StringParameterValue", + "name":"REBASE_ONTO", + "value":"" + }, + { + "_class":"hudson.model.StringParameterValue", + "name":"CITGM_LOGLEVEL", + "value":"warn" + }, + { + "_class":"hudson.model.StringParameterValue", + "name":"NPM_LOGLEVEL", + "value":"error" + }, + { + "_class":"hudson.model.StringParameterValue", + "name":"CITGM", + "value":"citgm" + }, + { + "_class":"hudson.model.StringParameterValue", + "name":"CITGM_COMMAND", + "value":"citgm-all -J" + }, + { + "_class":"hudson.model.BooleanParameterValue", + "name":"DISABLE_READABLE_STREAM", + "value":false + }, + { + "_class":"hudson.plugins.matrix_configuration_parameter.MatrixCombinationsParameterValue", + "name":"PLATFORMS" + } + ] + }, + { + + }, + { + + }, + { + "_class":"hudson.tasks.test.MatrixTestResult", + "failCount":21, + "skipCount":233, + "totalCount":848, + "urlName":"testReport" + }, + { + + }, + { + + }, + { + + }, + { + + }, + { + + }, + { + + } + ], + "artifacts":[ + + ], + "building":false, + "description":null, + "displayName":"#2400", + "duration":9078685, + "estimatedDuration":7718633, + "executor":null, + "fullDisplayName":"citgm-smoker #2400", + "id":"2400", + "keepLog":false, + "number":2400, + "queueId":811161, + "result":"FAILURE", + "timestamp":1593490936364, + "url":"https://ci.nodejs.org/job/citgm-smoker/2400/", + "builtOn":"test-packetnet-ubuntu1804-x64-1", + "changeSet":{ + "_class":"hudson.plugins.git.GitChangeSetList", + "items":[ + { + "_class":"hudson.plugins.git.GitChangeSet", + "affectedPaths":[ + "doc/api/fs.md", + "doc/api/dns.md", + "doc/api/cli.md", + "doc/api/errors.md", + "CHANGELOG.md", + "doc/api/crypto.md", + "doc/api/n-api.md", + "doc/api/dgram.md", + "doc/changelogs/CHANGELOG_V14.md", + "doc/api/http2.md", + "doc/api/worker_threads.md", + "doc/api/http.md", + "src/node_version.h", + "doc/api/deprecations.md", + "doc/api/repl.md", + "doc/api/zlib.md", + "doc/api/events.md" + ], + "commitId":"9ec07f42864cb2446a87916732e91365596fcfa7", + "timestamp":1593490676000, + "author":{ + "absoluteUrl":"https://ci.nodejs.org/user/codebytere", + "fullName":"Shelley Vohr" + }, + "authorEmail":"shelley.vohr@gmail.com", + "comment":"2020-06-30, Version 14.5.0 (Current)\n\nNotable changes:\n\nbuild:\n * (SEMVER-MINOR) reset embedder string to \"-node.0\" (Michaël Zasso) https://github.com/nodejs/node/pull/33376\ncli:\n * (SEMVER-MINOR) add alias for report-directory to make it consistent (AshCripps) https://github.com/nodejs/node/pull/33587\ncrypto:\n * (SEMVER-MINOR) allow KeyObjects in postMessage (Tobias Nießen) https://github.com/nodejs/node/pull/33360\ndeps:\n * (SEMVER-MINOR) V8: cherry-pick 0d6debcc5f08 (Michaël Zasso) https://github.com/nodejs/node/pull/33376\n * (SEMVER-MINOR) update V8 to 8.3.110.9 (Michaël Zasso) https://github.com/nodejs/node/pull/33376\ndgram:\n * (SEMVER-MINOR) allow typed arrays in .send() (Sarat Addepalli) https://github.com/nodejs/node/pull/22413\nevents:\n * (SEMVER-MINOR) initial implementation of experimental EventTarget (James M Snell) https://github.com/nodejs/node/pull/33556\nfs:\n * (SEMVER-MINOR) implement lutimes (Maël Nison) https://github.com/nodejs/node/pull/33399\nhttp:\n * (SEMVER-MINOR) expose host and protocol on ClientRequest (wenningplus) https://github.com/nodejs/node/pull/33803\n * (SEMVER-MINOR) add maxTotalSockets to agent class (rickyes) https://github.com/nodejs/node/pull/33617\n * (SEMVER-MINOR) return this from OutgoingMessage#destroy() (Colin Ihrig) https://github.com/nodejs/node/pull/32789\n * (SEMVER-MINOR) return this from ClientRequest#destroy() (Colin Ihrig) https://github.com/nodejs/node/pull/32789\n * (SEMVER-MINOR) return this from IncomingMessage#destroy() (Colin Ihrig) https://github.com/nodejs/node/pull/32789\n * (SEMVER-MINOR) added scheduling option to http agent (delvedor) https://github.com/nodejs/node/pull/33278\nhttp2:\n * (SEMVER-MINOR) return this for Http2ServerRequest#setTimeout (Pranshu Srivastava) https://github.com/nodejs/node/pull/33994\n * (SEMVER-MINOR) do not modify explicity set date headers (Pranshu Srivastava) https://github.com/nodejs/node/pull/33160\nprocess:\n * (SEMVER-MINOR) add unhandled-rejection throw and warn-with-error-code (Dan Fabulich) https://github.com/nodejs/node/pull/33475\nsrc:\n * (SEMVER-MINOR) store key data in separate class (Tobias Nießen) https://github.com/nodejs/node/pull/33360\n * (SEMVER-MINOR) add NativeKeyObject base class (Tobias Nießen) https://github.com/nodejs/node/pull/33360\n * (SEMVER-MINOR) rename internal key handles to KeyObjectHandle (Tobias Nießen) https://github.com/nodejs/node/pull/33360\n * (SEMVER-MINOR) add equality operators for BaseObjectPtr (Anna Henningsen) https://github.com/nodejs/node/pull/33772\n * (SEMVER-MINOR) introduce BaseObject base FunctionTemplate (Anna Henningsen) https://github.com/nodejs/node/pull/33772\n * (SEMVER-MINOR) add public APIs to manage v8::TracingController (Anna Henningsen) https://github.com/nodejs/node/pull/33850\nstream*:\n * runtime deprecate Transform._transformState (Robert Nagy) https://github.com/nodejs/node/pull/32763\nwin:\n * (SEMVER-MINOR) allow skipping the supported platform check (João Reis) https://github.com/nodejs/node/pull/33176\nworker:\n * (SEMVER-MINOR) add public method for marking objects as untransferable (Anna Henningsen) https://github.com/nodejs/node/pull/33979\n * (SEMVER-MINOR) emit `'messagerror'` events for failed deserialization (Anna Henningsen) https://github.com/nodejs/node/pull/33772\n * (SEMVER-MINOR) allow passing JS wrapper objects via postMessage (Anna Henningsen) https://github.com/nodejs/node/pull/33772\n * (SEMVER-MINOR) allow transferring/cloning generic BaseObjects (Anna Henningsen) https://github.com/nodejs/node/pull/33772\nworker,fs:\n * (SEMVER-MINOR) make FileHandle transferable (Anna Henningsen) https://github.com/nodejs/node/pull/33772\nzlib:\n * (SEMVER-MINOR) add `maxOutputLength` option (unknown) https://github.com/nodejs/node/pull/33516\n\nPR-URL: https://github.com/nodejs/node/pull/34093\n", + "date":"2020-06-29 21:17:56 -0700", + "id":"9ec07f42864cb2446a87916732e91365596fcfa7", + "msg":"2020-06-30, Version 14.5.0 (Current)", + "paths":[ + { + "editType":"edit", + "file":"doc/api/dgram.md" + }, + { + "editType":"edit", + "file":"doc/api/http2.md" + }, + { + "editType":"edit", + "file":"doc/api/events.md" + }, + { + "editType":"edit", + "file":"doc/api/http.md" + }, + { + "editType":"edit", + "file":"doc/api/worker_threads.md" + }, + { + "editType":"edit", + "file":"src/node_version.h" + }, + { + "editType":"edit", + "file":"CHANGELOG.md" + }, + { + "editType":"edit", + "file":"doc/api/errors.md" + }, + { + "editType":"edit", + "file":"doc/api/crypto.md" + }, + { + "editType":"edit", + "file":"doc/api/dns.md" + }, + { + "editType":"edit", + "file":"doc/changelogs/CHANGELOG_V14.md" + }, + { + "editType":"edit", + "file":"doc/api/zlib.md" + }, + { + "editType":"edit", + "file":"doc/api/fs.md" + }, + { + "editType":"edit", + "file":"doc/api/deprecations.md" + }, + { + "editType":"edit", + "file":"doc/api/cli.md" + }, + { + "editType":"edit", + "file":"doc/api/repl.md" + }, + { + "editType":"edit", + "file":"doc/api/n-api.md" + } + ] + } + ], + "kind":"git" + }, + "culprits":[ + { + "absoluteUrl":"https://ci.nodejs.org/user/addaleax", + "fullName":"Anna Henningsen" + }, + { + "absoluteUrl":"https://ci.nodejs.org/user/bethany.griggs", + "fullName":"Bethany.Griggs" + }, + { + "absoluteUrl":"https://ci.nodejs.org/user/bridgear", + "fullName":"Ruben Bridgewater" + }, + { + "absoluteUrl":"https://ci.nodejs.org/user/codebytere", + "fullName":"Shelley Vohr" + }, + { + "absoluteUrl":"https://ci.nodejs.org/user/dan.fabulich", + "fullName":"dan.fabulich" + }, + { + "absoluteUrl":"https://ci.nodejs.org/user/devsnek", + "fullName":"Gus Caplan" + }, + { + "absoluteUrl":"https://ci.nodejs.org/user/gireeshpunathil", + "fullName":"Gireesh Punathil" + }, + { + "absoluteUrl":"https://ci.nodejs.org/user/github", + "fullName":"github" + }, + { + "absoluteUrl":"https://ci.nodejs.org/user/jasnell", + "fullName":"James M Snell" + }, + { + "absoluteUrl":"https://ci.nodejs.org/user/lpinca", + "fullName":"Luigi Pinca" + }, + { + "absoluteUrl":"https://ci.nodejs.org/user/lundibundi", + "fullName":"Denys Otrishko" + }, + { + "absoluteUrl":"https://ci.nodejs.org/user/mmarchini", + "fullName":"mmarchini" + }, + { + "absoluteUrl":"https://ci.nodejs.org/user/mylesborins", + "fullName":"Myles Borins" + }, + { + "absoluteUrl":"https://ci.nodejs.org/user/puzpuzpuz", + "fullName":"Andrey Pechkurov" + }, + { + "absoluteUrl":"https://ci.nodejs.org/user/rexagod", + "fullName":"Pranshu Srivastava" + }, + { + "absoluteUrl":"https://ci.nodejs.org/user/ronag", + "fullName":"Robert Nagy" + }, + { + "absoluteUrl":"https://ci.nodejs.org/user/sam-github", + "fullName":"Sam Roberts" + }, + { + "absoluteUrl":"https://ci.nodejs.org/user/targos", + "fullName":"Michaël Zasso" + }, + { + "absoluteUrl":"https://ci.nodejs.org/user/tniessen", + "fullName":"Tobias Nießen" + }, + { + "absoluteUrl":"https://ci.nodejs.org/user/trott", + "fullName":"Rich Trott" + }, + { + "absoluteUrl":"https://ci.nodejs.org/user/unknown", + "fullName":"unknown" + }, + { + "absoluteUrl":"https://ci.nodejs.org/user/vdeturckheim", + "fullName":"Vladimir de Turckheim" + } + ], + "runs":[ + { + "number":2400, + "url":"https://ci.nodejs.org/job/citgm-smoker/nodes=aix71-ppc64/2400/" + }, + { + "number":2400, + "url":"https://ci.nodejs.org/job/citgm-smoker/nodes=centos7-ppcle/2400/" + }, + { + "number":2400, + "url":"https://ci.nodejs.org/job/citgm-smoker/nodes=debian9-64/2400/" + }, + { + "number":2400, + "url":"https://ci.nodejs.org/job/citgm-smoker/nodes=fedora-last-latest-x64/2400/" + }, + { + "number":2400, + "url":"https://ci.nodejs.org/job/citgm-smoker/nodes=fedora-latest-x64/2400/" + }, + { + "number":2400, + "url":"https://ci.nodejs.org/job/citgm-smoker/nodes=osx1014/2400/" + }, + { + "number":2400, + "url":"https://ci.nodejs.org/job/citgm-smoker/nodes=osx1015/2400/" + }, + { + "number":2400, + "url":"https://ci.nodejs.org/job/citgm-smoker/nodes=rhel7-s390x/2400/" + }, + { + "number":2400, + "url":"https://ci.nodejs.org/job/citgm-smoker/nodes=ubuntu1604-64/2400/" + }, + { + "number":2400, + "url":"https://ci.nodejs.org/job/citgm-smoker/nodes=ubuntu1804-64/2400/" + }, + { + "number":2400, + "url":"https://ci.nodejs.org/job/citgm-smoker/nodes=win-vs2017/2400/" + } + ] +} \ No newline at end of file diff --git a/test/fixtures/jenkins/citgm/expected.json b/test/fixtures/jenkins/citgm/expected.json new file mode 100644 index 0000000..10d32a8 --- /dev/null +++ b/test/fixtures/jenkins/citgm/expected.json @@ -0,0 +1,132 @@ +{ + "source": "https://github.com/nodejs/node/pull/34093/", + "upstream": "https://ci.nodejs.org/job/citgm-smoker/2400/", + "passed": 594, + "total": 848, + "skipped": 233, + "failed": 21, + "debian9-64": { + "url": "https://ci.nodejs.org/job/citgm-smoker/nodes=debian9-64/2400/", + "modules": [ + { + "name": "coffeescript-v2.5.1", + "status": "FAILED" + }, + { + "name": "through2-v4.0.2", + "status": "FAILED" + } + ] + }, + "rhel7-s390x": { + "url": "https://ci.nodejs.org/job/citgm-smoker/nodes=rhel7-s390x/2400/", + "modules": [ + { + "name": "through2-v4.0.2", + "status": "FAILED" + } + ] + }, + "fedora-latest-x64": { + "url": "https://ci.nodejs.org/job/citgm-smoker/nodes=fedora-latest-x64/2400/", + "modules": [ + { + "name": "coffeescript-v2.5.1", + "status": "FAILED" + }, + { + "name": "through2-v4.0.2", + "status": "FAILED" + } + ] + }, + "ubuntu1604-64": { + "url": "https://ci.nodejs.org/job/citgm-smoker/nodes=ubuntu1604-64/2400/", + "modules": [ + { + "name": "coffeescript-v2.5.1", + "status": "FAILED" + }, + { + "name": "through2-v4.0.2", + "status": "FAILED" + } + ] + }, + "osx1014": { + "url": "https://ci.nodejs.org/job/citgm-smoker/nodes=osx1014/2400/", + "modules": [ + { + "name": "acorn-v7.3.1", + "status": "FAILED" + }, + { + "name": "coffeescript-v2.5.1", + "status": "FAILED" + }, + { + "name": "clinic-v6.0.2", + "status": "FAILED" + }, + { + "name": "ember-cli-v3.19.0", + "status": "FAILED" + }, + { + "name": "semver-v7.3.2", + "status": "FAILED" + }, + { + "name": "watchify-v3.11.1", + "status": "FAILED" + } + ] + }, + "ubuntu1804-64": { + "url": "https://ci.nodejs.org/job/citgm-smoker/nodes=ubuntu1804-64/2400/", + "modules": [ + { + "name": "coffeescript-v2.5.1", + "status": "FAILED" + }, + { + "name": "through2-v4.0.2", + "status": "FAILED" + } + ] + }, + "fedora-last-latest-x64": { + "url": "https://ci.nodejs.org/job/citgm-smoker/nodes=fedora-last-latest-x64/2400/", + "modules": [ + { + "name": "coffeescript-v2.5.1", + "status": "FAILED" + }, + { + "name": "through2-v4.0.2", + "status": "FAILED" + } + ] + }, + "centos7-ppcle": { + "url": "https://ci.nodejs.org/job/citgm-smoker/nodes=centos7-ppcle/2400/", + "modules": [ + { + "name": "coffeescript-v2.5.1", + "status": "FAILED" + }, + { + "name": "clinic-v6.0.2", + "status": "FAILED" + }, + { + "name": "torrent-stream-v1.2.0", + "status": "FAILED" + }, + { + "name": "through2-v4.0.2", + "status": "FAILED" + } + ] + } +} diff --git a/test/fixtures/jenkins/citgm/expected.md b/test/fixtures/jenkins/citgm/expected.md new file mode 100644 index 0000000..aa4b949 --- /dev/null +++ b/test/fixtures/jenkins/citgm/expected.md @@ -0,0 +1,55 @@ +# CITGM Data for [2400](https://ci.nodejs.org/job/citgm-smoker/2400/) + +## Statistics for job [2400](https://ci.nodejs.org/job/citgm-smoker/2400/) + +| FAILED | SKIPPED | PASSED | TOTAL | +| -------- | --------- | -------- | ------- | +| 21 | 233 | 594 | 848 | + +## Failures in job [2400](https://ci.nodejs.org/job/citgm-smoker/2400/) + +### [debian9-64](https://ci.nodejs.org/job/citgm-smoker/nodes=debian9-64/2400/) + +* coffeescript-v2.5.1 +* through2-v4.0.2 + +### [rhel7-s390x](https://ci.nodejs.org/job/citgm-smoker/nodes=rhel7-s390x/2400/) + +* through2-v4.0.2 + +### [fedora-latest-x64](https://ci.nodejs.org/job/citgm-smoker/nodes=fedora-latest-x64/2400/) + +* coffeescript-v2.5.1 +* through2-v4.0.2 + +### [ubuntu1604-64](https://ci.nodejs.org/job/citgm-smoker/nodes=ubuntu1604-64/2400/) + +* coffeescript-v2.5.1 +* through2-v4.0.2 + +### [osx1014](https://ci.nodejs.org/job/citgm-smoker/nodes=osx1014/2400/) + +* acorn-v7.3.1 +* coffeescript-v2.5.1 +* clinic-v6.0.2 +* ember-cli-v3.19.0 +* semver-v7.3.2 +* watchify-v3.11.1 + +### [ubuntu1804-64](https://ci.nodejs.org/job/citgm-smoker/nodes=ubuntu1804-64/2400/) + +* coffeescript-v2.5.1 +* through2-v4.0.2 + +### [fedora-last-latest-x64](https://ci.nodejs.org/job/citgm-smoker/nodes=fedora-last-latest-x64/2400/) + +* coffeescript-v2.5.1 +* through2-v4.0.2 + +### [centos7-ppcle](https://ci.nodejs.org/job/citgm-smoker/nodes=centos7-ppcle/2400/) + +* coffeescript-v2.5.1 +* clinic-v6.0.2 +* torrent-stream-v1.2.0 +* through2-v4.0.2 + diff --git a/test/unit/ci_result_parser.test.js b/test/unit/ci_result_parser.test.js index ed75f2d..b4ad695 100644 --- a/test/unit/ci_result_parser.test.js +++ b/test/unit/ci_result_parser.test.js @@ -1,7 +1,7 @@ 'use strict'; const { - PRBuild, BenchmarkRun, CommitBuild, jobCache + PRBuild, BenchmarkRun, CommitBuild, jobCache, CITGMBuild } = require('../../lib/ci/ci_result_parser'); const TestCLI = require('../fixtures/test_cli'); @@ -175,4 +175,24 @@ describe('Jenkins', () => { const expectedJson = fixtures.readJSON(...prefix, 'expected.json'); assert.deepStrictEqual(run.formatAsJson(), expectedJson); }); + + it('should correctly fetch CITGM build results', async() => { + tmpdir.refresh(); + const prefix = ['jenkins', 'citgm']; + const fixturesDir = path.join(__dirname, '..', 'fixtures', ...prefix); + copyShallow(fixturesDir, tmpdir.path); + jobCache.dir = tmpdir.path; + jobCache.enable(); + + const cli = new TestCLI(); + const citgmBuild = new CITGMBuild(cli, {}, 2400); + await citgmBuild.getResults(); + + const expectedJson = fixtures.readJSON(...prefix, 'expected.json'); + assert.deepStrictEqual(citgmBuild.formatAsJson(), expectedJson); + + const markdown = citgmBuild.formatAsMarkdown(); + const expected = fixtures.readFile(...prefix, 'expected.md'); + assert.strictEqual(markdown, expected); + }); });