diff --git a/httpApi.js b/httpApi.js index 7878f27..0ede01b 100644 --- a/httpApi.js +++ b/httpApi.js @@ -63,6 +63,7 @@ module.exports = function(app) { app.distributor.run({ projectName: projectName, withScmChangesOnly: req.body.withScmChangesOnly, + skipQueued: req.body.skipQueued, initiator: {type: 'httpApi'} }); } else { diff --git a/lib/distributor.js b/lib/distributor.js index 1aaba32..42076b1 100644 --- a/lib/distributor.js +++ b/lib/distributor.js @@ -273,6 +273,19 @@ Distributor.prototype.run = function(params, callback) { return callback(); } + if (params.skipQueued) { + var queuedItem = _(self.queue).find(function(item) { + return item.project.name === project.name; + }); + if (queuedItem) { + logger.log( + 'Building of "%s" skipped coz it`s already queued', + project.name + ); + return callback(); + } + } + self._updateBuild({}, { project: project, initiator: params.initiator,