Merge pull request #820 from embark-framework/bug_fix/error-deploy-pending

Don't stop everything on contract deploy fail
This commit is contained in:
Iuri Matias 2018-09-12 18:50:56 -04:00 committed by GitHub
commit edd9ece585
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 24 additions and 17 deletions

View File

@ -52,6 +52,7 @@ class DeployManager {
self.events.emit("deploy:beforeAll");
const contractDeploys = {};
const errors = [];
contracts.forEach(contract => {
function deploy(result, callback) {
if (typeof result === 'function') {
@ -59,7 +60,12 @@ class DeployManager {
}
contract._gasLimit = self.gasLimit;
self.events.request('deploy:contract', contract, (err) => {
callback(err);
if (err) {
contract.error = err.message || err;
self.logger.error(err.message || err);
errors.push(err);
}
callback();
});
}
@ -72,23 +78,24 @@ class DeployManager {
contractDeploys[className].push(deploy);
});
async.auto(contractDeploys, function(err, _results) {
if (err) {
self.logger.error(__("error deploying contracts"));
if(err.message !== undefined) {
self.logger.error(err.message);
self.logger.debug(err.stack);
} else {
self.logger.error(err);
try {
async.auto(contractDeploys, function(_err, _results) {
if (errors.length) {
_err = __("Error deploying contracts. Please fix errors to continue.");
self.logger.error(_err);
return done(_err);
}
}
if (contracts.length === 0) {
self.logger.info(__("no contracts found"));
return done();
}
self.logger.info(__("finished deploying contracts"));
done(err);
});
if (contracts.length === 0) {
self.logger.info(__("no contracts found"));
return done();
}
self.logger.info(__("finished deploying contracts"));
done(err);
});
} catch (e) {
self.logger.error(e.message || e);
done(__('Error deploying'));
}
});
});
}