Support Snap CI

This commit is contained in:
Pine Mizune 2015-07-18 01:14:38 +09:00
parent f662a7bdfc
commit 963ee68d8f
2 changed files with 41 additions and 1 deletions

View File

@ -3984,6 +3984,42 @@ cache(function(data, match, sendBadge, request) {
});
}));
// Snap CI build integration.
// https://snap-ci.com/snap-ci/snap-deploy/branch/master/build_image
camp.route(/^\/snap(-ci?)\/([^\/]+\/[^\/]+)(?:\/(.+))\.(svg|png|gif|jpg|json)$/,
cache(function(data, match, sendBadge, request) {
var userRepo = match[2];
var branch = match[3];
var format = match[4];
var url = 'https://snap-ci.com/' + userRepo + '/branch/' + branch + '/build_image.svg';
var badgeData = getBadgeData('build', data);
fetchFromSvg(request, url, function(err, res) {
if (err != null) {
badgeData.text[1] = 'inaccessible';
sendBadge(format, badgeData);
return;
}
console.log(badgeData.text[1]);
try {
badgeData.text[1] = res;
if (res === 'Passed') {
badgeData.colorscheme = 'brightgreen';
} else if (res === 'Failed') {
badgeData.colorscheme = 'red';
} else {
badgeData.text[1] = res;
}
sendBadge(format, badgeData);
} catch(e) {
badgeData.text[1] = 'invalid';
sendBadge(format, badgeData);
}
});
}));
// Any badge.
camp.route(/^\/(:|badge\/)(([^-]|--)*?)-(([^-]|--)*)-(([^-]|--)+)\.(svg|png|gif|jpg)$/,
function(data, match, end, ask) {
@ -4195,7 +4231,7 @@ function fetchFromSvg(request, url, cb) {
request(url, function(err, res, buffer) {
if (err != null) { return cb(err); }
try {
var badge = buffer.replace(/(?:\r\n\s|\r\s|\n\s)/g, '');
var badge = buffer.replace(/(?:\r\n\s*|\r\s*|\n\s*)/g, '');
var match = />([^<>]+)<\/text><\/g>/.exec(badge);
cb(null, match[1]);
} catch(e) {

View File

@ -124,6 +124,10 @@ Pixel-perfect &nbsp; Retina-ready &nbsp; Fast &nbsp; Consistent &nbsp; Hackable
<td><img src='/shippable/54d119db5ab6cc13528ab183/master.svg' alt=''/></td>
<td><code>https://img.shields.io/shippable/54d119db5ab6cc13528ab183/master.svg</code></td>
</tr>
<tr><th> Snap CI branch: </th>
<td><img src='/snap-ci/snap-ci/snap-deploy/master.svg' alt=''/></td>
<td><code>https://img.shields.io/snap-ci/snap-ci/snap-deploy/master.svg</code></td>
</tr>
<tr><th> Jenkins: </th>
<td><img src='/jenkins/s/https/jenkins.qa.ubuntu.com/precise-desktop-amd64_default.svg' alt=''/></td>
<td><code>https://img.shields.io/jenkins/s/https/jenkins.qa.ubuntu.com/precise-desktop-amd64_default.svg</code></td>