add jenkins integration
This commit is contained in:
parent
dc6c5c836a
commit
6f616fc58d
75
server.js
75
server.js
|
@ -1267,6 +1267,81 @@ cache(function(data, match, sendBadge) {
|
|||
});
|
||||
}));
|
||||
|
||||
// Jenkins build status integration
|
||||
camp.route(/^\/jenkins(-ci)?\/s\/(http(s)?)\/([^\/]+)(\/.+?)?\/([^\/]+)\.(svg|png|gif|jpg)$/,
|
||||
cache(function(data, match, sendBadge) {
|
||||
var scheme = match[2]; // eg, espadrine/sc
|
||||
var host = match[4];
|
||||
var path = match[5];
|
||||
var job = match[6];
|
||||
var format = match[7];
|
||||
var options = {
|
||||
json: true,
|
||||
uri: scheme + '://' + host + '/' + (path || '') + '/job/' + job + '/lastBuild/api/json?tree=result'
|
||||
};
|
||||
|
||||
var badgeData = getBadgeData('build', data);
|
||||
request(options, function(err, res, json) {
|
||||
if (err != null) {
|
||||
badgeData.text[1] = 'inaccessible';
|
||||
sendBadge(format, badgeData);
|
||||
return;
|
||||
}
|
||||
|
||||
console.log(json);
|
||||
badgeData.text[1] = 'unbuilt';
|
||||
|
||||
if (json.result === 'SUCCESS') {
|
||||
badgeData.colorscheme = 'brightgreen';
|
||||
badgeData.text[1] = 'passing';
|
||||
} else if (json.result === 'FAILURE') {
|
||||
badgeData.colorscheme = 'red';
|
||||
badgeData.text[1] = 'failing';
|
||||
} else if (json.result === 'UNSTABLE') {
|
||||
badgeData.colorscheme = 'yellow';
|
||||
badgeData.text[1] = 'unstable';
|
||||
}
|
||||
sendBadge(format, badgeData);
|
||||
});
|
||||
}));
|
||||
// Jenkins tests integration
|
||||
camp.route(/^\/jenkins(-ci)?\/t\/(http(s)?)\/([^\/]+)(\/.+?)?\/([^\/]+)\.(svg|png|gif|jpg)$/,
|
||||
cache(function(data, match, sendBadge) {
|
||||
var scheme = match[2]; // eg, espadrine/sc
|
||||
var host = match[4];
|
||||
var path = match[5];
|
||||
var job = match[6];
|
||||
var format = match[7];
|
||||
var options = {
|
||||
json: true,
|
||||
uri: scheme + '://' + host + '/' + (path || '') + '/job/' + job + '/lastBuild/api/json?tree=actions[failCount,skipCount,totalCount]'
|
||||
};
|
||||
|
||||
var badgeData = getBadgeData('tests', data);
|
||||
request(options, function(err, res, json) {
|
||||
if (err !== null) {
|
||||
badgeData.text[1] = 'inaccessible';
|
||||
sendBadge(format, badgeData);
|
||||
return;
|
||||
}
|
||||
var testsObject = json.actions.filter(function (obj) {
|
||||
return obj.hasOwnProperty('failCount');
|
||||
})[0];
|
||||
|
||||
var successfulTests = testsObject.totalCount - (testsObject.failCount + testsObject.skipCount);
|
||||
var percent = successfulTests / testsObject.totalCount;
|
||||
badgeData.text[1] = successfulTests + ' / ' + testsObject.totalCount;
|
||||
if (percent === 1) {
|
||||
badgeData.colorscheme = 'brightgreen';
|
||||
} else if (percent === 0) {
|
||||
badgeData.colorscheme = 'red';
|
||||
} else {
|
||||
badgeData.colorscheme = 'yellow';
|
||||
}
|
||||
sendBadge(format, badgeData);
|
||||
});
|
||||
}));
|
||||
|
||||
// Any badge.
|
||||
camp.route(/^\/(:|badge\/)(([^-]|--)+)-(([^-]|--)+)-(([^-]|--)+)\.(svg|png|gif|jpg)$/,
|
||||
function(data, match, end, ask) {
|
||||
|
|
Loading…
Reference in New Issue
Block a user