in api/models/Build.js [106:150]
completeJob: function(err, model, skip) {
if (!model) return;
sails.log.verbose('Completed job: ', model.id);
// Reset associated models to ids
if (model.user.id) model.user = model.user.id;
if (model.site.id) model.site = model.site.id;
// Load model if only attributes are present
if (typeof model.save === 'function') {
if (err) return next(err, model);
next(null, model);
} else {
Build.findOne(model.id).exec(function(error, model) {
if (err) return next(err, model);
if (error) return next(error, model);
next(null, model);
});
}
function next(err, model) {
if (err) sails.log.error('Build error: ', err);
var error = err ? (err.message || err) : '';
// Set job completion timestamp
model.completedAt = new Date();
// Set build state
model.state = (err) ? 'error' : (skip) ? 'skipped' : 'success';
// Sanitize error message
error = error.replace(/\/\/(.*)@github/g, '//[token_redacted]@github');
// Add error message if it exists
model.error = error;
// Save updated model
model.save(function(err) {
// We expect an error on first build after clone so do nothing
});
}
}