show build data at the client

This commit is contained in:
oleg 2015-05-04 01:58:04 +03:00
parent ce9dccba5d
commit 4c6f55b445
4 changed files with 29 additions and 3 deletions

View File

@ -17,6 +17,9 @@ function Distributor(params) {
self.onBuildUpdate = params.onBuildUpdate || function(build, callback) {
callback(null, build);
};
self.onBuildData = params.onBuildData || function(build, data) {
};
}
exports.Distributor = Distributor;
@ -62,7 +65,7 @@ Distributor.prototype._runNext = function(callback) {
});
executor.on('data', function(data) {
console.log('>>> executor`s data = ', data);
self.onBuildData(build, data);
});
},
callback

View File

@ -6,7 +6,8 @@
"rev": "default"
},
"steps": [
{"type": "shell", "cmd": "echo 11"},
{"type": "shell", "cmd": "echo \"hello, cur dir is `pwd`\""},
{"type": "shell", "cmd": "sleep 3"},
{"type": "shell", "cmd": "echo 1 > 1.txt"},
{"type": "shell", "cmd": "echo 2 > 2.txt"}
]

View File

@ -19,16 +19,28 @@ project.loadAll('projects', function(err, loadedProjects) {
});
module.exports = function(app) {
var buildsSequnce = 0;
var distributor = new Distributor({
nodes: [{type: 'local', maxExecutorsCount: 1}],
onBuildUpdate: function(build, callback) {
var buildsResource = app.dataio.resource('builds');
if (build.status === 'waiting') {
build.id = ++buildsSequnce;
// create resource for build data
var buildDataResource = app.dataio.resource('build' + build.id);
buildDataResource.on('connection', function(client) {
client.emit('sync', 'data', '< collected data >');
});
}
buildsResource.clientEmitSync(
build.status === 'waiting' ? 'create' : 'update',
build
);
callback(null, build);
},
onBuildData: function(build, data) {
app.dataio.resource('build' + build.id).clientEmitSync('data', data);
}
});

View File

@ -28,6 +28,16 @@ define([
});
builds.subscribe(function(data, action) {
$('#content').append(action.action + ': ' + JSON.stringify(data));
$('#content').append(
action.action + ': ' + JSON.stringify(data) + '<br>'
);
if (action.action === 'create') {
var name = 'build' + data.id;
connect.resource(name).subscribe(function(data, action) {
$('#content').append(
'<br>' + name + ': ' + data + '<br>'
);
});
}
});
});