separate projects, builds, build console blocks at the client
This commit is contained in:
parent
4c6f55b445
commit
5cfebe1aa1
@ -7,8 +7,10 @@
|
|||||||
},
|
},
|
||||||
"steps": [
|
"steps": [
|
||||||
{"type": "shell", "cmd": "echo \"hello, cur dir is `pwd`\""},
|
{"type": "shell", "cmd": "echo \"hello, cur dir is `pwd`\""},
|
||||||
{"type": "shell", "cmd": "sleep 3"},
|
{"type": "shell", "cmd": "sleep 4"},
|
||||||
{"type": "shell", "cmd": "echo 1 > 1.txt"},
|
{"type": "shell", "cmd": "echo 1 > 1.txt"},
|
||||||
{"type": "shell", "cmd": "echo 2 > 2.txt"}
|
{"type": "shell", "cmd": "sleep 4"},
|
||||||
|
{"type": "shell", "cmd": "echo 2 > 2.txt"},
|
||||||
|
{"type": "shell", "cmd": "cat 1.txt 2.txt"}
|
||||||
]
|
]
|
||||||
}
|
}
|
@ -7,6 +7,8 @@
|
|||||||
},
|
},
|
||||||
"steps": [
|
"steps": [
|
||||||
{"type": "shell", "cmd": "echo 11 > 11.txt"},
|
{"type": "shell", "cmd": "echo 11 > 11.txt"},
|
||||||
{"type": "shell", "cmd": "echo 22 > 22.txt"}
|
{"type": "shell", "cmd": "sleep 4"},
|
||||||
|
{"type": "shell", "cmd": "echo 22 > 22.txt"},
|
||||||
|
{"type": "shell", "cmd": "cat 11.txt 22.txt"}
|
||||||
]
|
]
|
||||||
}
|
}
|
@ -7,37 +7,44 @@ define([
|
|||||||
) {
|
) {
|
||||||
var connect = dataio(socketio.connect());
|
var connect = dataio(socketio.connect());
|
||||||
|
|
||||||
var projects = connect.resource('projects');
|
var projects = connect.resource('projects'),
|
||||||
var builds = connect.resource('builds');
|
projectsTemplate = _($('#projects-template').html()).template();
|
||||||
|
|
||||||
var projectsTemplate = _($('#projects-template').html()).template();
|
$('#projects').on('click', '.js-projects .js-run', function() {
|
||||||
$('#content').on('click', '.js-projects .js-run', function() {
|
|
||||||
var projectName = $(this).parent('.js-project').data('name');
|
var projectName = $(this).parent('.js-project').data('name');
|
||||||
projects.sync('run', {projectName: projectName}, function(err, result) {
|
projects.sync('run', {projectName: projectName}, function(err, result) {
|
||||||
$('#content').append(
|
$('#content').append(err && err.message);
|
||||||
(err && err.message)
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
projects.sync('read', function(err, projects) {
|
projects.sync('read', function(err, projects) {
|
||||||
$('#content').html(
|
$('#projects').html(
|
||||||
(err && err.message) ||
|
(err && err.message) ||
|
||||||
projectsTemplate({projects: projects})
|
projectsTemplate({projects: projects})
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
builds.subscribe(function(data, action) {
|
|
||||||
$('#content').append(
|
var builds = connect.resource('builds'),
|
||||||
action.action + ': ' + JSON.stringify(data) + '<br>'
|
buildsTemplate = _($('#builds-template').html()).template(),
|
||||||
);
|
buildsHash = {};
|
||||||
if (action.action === 'create') {
|
|
||||||
var name = 'build' + data.id;
|
$('#builds').on('click', '.js-builds .js-show-console', function() {
|
||||||
connect.resource(name).subscribe(function(data, action) {
|
var buildId = $(this).parent('.js-build').data('id'),
|
||||||
$('#content').append(
|
resourceName = 'build' + buildId;;
|
||||||
'<br>' + name + ': ' + data + '<br>'
|
|
||||||
);
|
$('#build-console').prev('h2').html('Build #' + buildId + ' console');
|
||||||
});
|
$('#build-console').html('');
|
||||||
}
|
|
||||||
|
connect.resource(resourceName).subscribe(function(data) {
|
||||||
|
$('#build-console').append('<div>' + data + '</div>');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
builds.subscribe(function(build, action) {
|
||||||
|
buildsHash[build.id] = build;
|
||||||
|
$('#builds').html(buildsTemplate({
|
||||||
|
builds: _(buildsHash).values().reverse()
|
||||||
|
}));
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -7,8 +7,6 @@ html
|
|||||||
require(['app/app']);
|
require(['app/app']);
|
||||||
|
|
||||||
body
|
body
|
||||||
h1 hello world
|
|
||||||
|
|
||||||
|
|
||||||
script#projects-template(type="text/template")
|
script#projects-template(type="text/template")
|
||||||
| <div class="js-projects">
|
| <div class="js-projects">
|
||||||
@ -20,5 +18,25 @@ html
|
|||||||
| <% }); %>
|
| <% }); %>
|
||||||
| </div>
|
| </div>
|
||||||
|
|
||||||
|
script#builds-template(type="text/template")
|
||||||
|
| <div class="js-builds">
|
||||||
|
| <% _(builds).each(function(build) { %>
|
||||||
|
| <div class="js-build" data-id="<%= build.id %>">
|
||||||
|
| <span>#<%= build.id %></span>
|
||||||
|
| <span><%= build.project.name %></span>
|
||||||
|
| <span><%= build.status %></span>
|
||||||
|
| <span class="js-show-console">→</span>
|
||||||
|
| </div>
|
||||||
|
| <% }); %>
|
||||||
|
| </div>
|
||||||
|
|
||||||
|
h2 Projects
|
||||||
|
#projects
|
||||||
|
|
||||||
|
h2 Builds
|
||||||
|
#builds
|
||||||
|
|
||||||
|
h2 Build console
|
||||||
|
#build-console
|
||||||
|
|
||||||
#content
|
#content
|
||||||
|
Loading…
x
Reference in New Issue
Block a user