Browse Source

tools: fix exit code when linting from CI

Before this, if there were lint errors reported by `make jslint-ci`,
the process would still exit with an exit code of zero.

This commit fixes that to align with `make jslint` (exit with
non-zero on lint errors).

PR-URL: https://github.com/nodejs/node/pull/6412
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: Phillip Johnsen <johphi@gmail.com>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
process-exit-stdio-flushing
Brian White 9 years ago
committed by Rich Trott
parent
commit
1264cecde7
  1. 20
      tools/jslint.js

20
tools/jslint.js

@ -125,23 +125,28 @@ if (cluster.isMaster) {
sendWork(worker); sendWork(worker);
}); });
process.on('exit', function() { process.on('exit', function(code) {
if (showProgress) { if (showProgress) {
curPath = 'Done'; curPath = 'Done';
printProgress(); printProgress();
outFn('\r\n'); outFn('\r\n');
} }
process.exit(failures ? 1 : 0); if (code === 0)
process.exit(failures ? 1 : 0);
}); });
for (i = 0; i < numCPUs; ++i) for (i = 0; i < numCPUs; ++i)
cluster.fork().on('message', onWorkerMessage); cluster.fork().on('message', onWorkerMessage).on('exit', onWorkerExit);
function onWorkerMessage(results) { function onWorkerMessage(results) {
if (typeof results !== 'number') { if (typeof results !== 'number') {
// The worker sent us results that are not all successes // The worker sent us results that are not all successes
if (!workerConfig.sendAll) if (workerConfig.sendAll) {
failures += results.errorCount;
results = results.results;
} else {
failures += results.length; failures += results.length;
}
outFn(formatter(results) + '\r\n'); outFn(formatter(results) + '\r\n');
printProgress(); printProgress();
} else { } else {
@ -151,6 +156,11 @@ if (cluster.isMaster) {
sendWork(this); sendWork(this);
} }
function onWorkerExit(code, signal) {
if (code !== 0 || signal)
process.exit(2);
}
function sendWork(worker) { function sendWork(worker) {
if (!files || !files.length) { if (!files || !files.length) {
// We either just started or we have no more files to lint for the current // We either just started or we have no more files to lint for the current
@ -245,7 +255,7 @@ if (cluster.isMaster) {
} }
} }
} }
process.send(results); process.send({ results: results, errorCount: report.errorCount });
} else if (report.errorCount === 0) { } else if (report.errorCount === 0) {
// No errors, return number of successful lint operations // No errors, return number of successful lint operations
process.send(files.length); process.send(files.length);

Loading…
Cancel
Save