diff --git a/server.js b/server.js index 9c7998c..31541ff 100644 --- a/server.js +++ b/server.js @@ -2781,6 +2781,61 @@ cache(function(data, match, sendBadge, request) { }); })); +// CircleCI build integration. +// https://circleci.com/api/v1/project/BrightFlair/PHP.Gt?circle-token=0a5143728784b263d9f0238b8d595522689b3af2&limit=1&filter=completed +camp.route(/^\/circleci\/project\/([^\/]+\/[^\/]+)(?:\/(.*))?\.(svg|png|gif|jpg|json)$/, +cache(function(data, match, sendBadge, request) { + var userRepo = match[1]; // eg, `doctrine/orm`. + var branch = match[2]; + var format = match[3]; + + var apiUrl = 'https://circleci.com/api/v1/project/' + userRepo; + if(branch != null) { + apiUrl += + "/tree/" + + branch; + } + apiUrl += + '?circle-token=0a5143728784b263d9f0238b8d595522689b3af2' + + '&limit=1&filter=completed'; + + var badgeData = getBadgeData('CircleCI', data); + + request(apiUrl, {json:true}, function(err, res, data) { + if (err != null) { + badgeData.text[1] = 'inaccessible'; + sendBadge(format, badgeData); + } + try { + var status = data[0].status; + switch(status) { + case 'success': + badgeData.colorscheme = 'brightgreen'; + badgeData.text[1] = 'passing'; + break; + + case 'failed': + badgeData.colorscheme = 'red'; + badgeData.text[1] = 'failed'; + break; + + case 'no_tests': + case 'scheduled': + case 'not_run': + badgeData.colorscheme = 'yellow'; + default: + badgeData.text[1] = status.replace('_', ' '); + break; + } + + sendBadge(format, badgeData); + } catch(e) { + badgeData.text[1] = "ERROR: Buffer = " + buffer;//'invalid'; + sendBadge(format, badgeData); + } + }); +})); + // Any badge. camp.route(/^\/(:|badge\/)(([^-]|--)+)-(([^-]|--)+)-(([^-]|--)+)\.(svg|png|gif|jpg)$/, function(data, match, end, ask) { diff --git a/try.html b/try.html index 38627c8..63108f1 100644 --- a/try.html +++ b/try.html @@ -156,6 +156,14 @@ Pixel-perfect   Retina-ready   Fast   Consistent   Hackable https://img.shields.io/sensiolabs/i/45afb680-d4e6-4e66-93ea-bcfa79eb8a87.svg + CircleCI: + + https://img.shields.io/circleci/project/BrightFlair/PHP.Gt.svg + + CircleCI branch: + + https://img.shields.io/circleci/project/BrightFlair/PHP.Gt/master.svg +

Downloads

@@ -587,6 +595,9 @@ is where the current server got started. jublo + + g105b + sebmck