mirror of
https://gitlab.silvrtree.co.uk/martind2000/nci.git
synced 2025-01-11 06:45:08 +00:00
43 lines
1.1 KiB
JavaScript
43 lines
1.1 KiB
JavaScript
'use strict';
|
|
|
|
var _ = require('underscore'),
|
|
errorHandler = require('./errorHandler'),
|
|
helpers = require('./helpers');
|
|
|
|
module.exports = function(app) {
|
|
_(['builds', 'projects']).each(function(resource) {
|
|
var resource = require('./' + resource)(app);
|
|
resource.use(errorHandler);
|
|
});
|
|
|
|
var buildsResource = app.dataio.resource('builds');
|
|
|
|
app.builds.on('buildUpdated', function(build, changes) {
|
|
if (build.status === 'queued') {
|
|
helpers.createBuildDataResource(app, build.id);
|
|
}
|
|
|
|
// notify about build's project change, coz building affects project
|
|
// related stat (last build date, avg build time, etc)
|
|
if (changes.completed) {
|
|
var projectsResource = app.dataio.resource('projects');
|
|
projectsResource.clientEmitSyncChange(build.project.name);
|
|
}
|
|
|
|
buildsResource.clientEmitSync('change', {
|
|
buildId: build.id, changes: changes
|
|
});
|
|
});
|
|
|
|
app.builds.on('buildCanceled', function(build) {
|
|
buildsResource.clientEmitSync('cancel', {buildId: build.id});
|
|
});
|
|
|
|
app.builds.on('buildLogLines', function(build, lines) {
|
|
app.dataio.resource('build' + build.id).clientEmitSync(
|
|
'data',
|
|
{lines: lines}
|
|
);
|
|
});
|
|
};
|