From 963ee68d8fbcf76f4c24195ec4eed78a04a18ebb Mon Sep 17 00:00:00 2001 From: Pine Mizune Date: Sat, 18 Jul 2015 01:14:38 +0900 Subject: [PATCH 1/3] Support Snap CI --- server.js | 38 +++++++++++++++++++++++++++++++++++++- try.html | 4 ++++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/server.js b/server.js index e27c7c1..7509687 100644 --- a/server.js +++ b/server.js @@ -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) { diff --git a/try.html b/try.html index 01d08ff..a783723 100644 --- a/try.html +++ b/try.html @@ -124,6 +124,10 @@ Pixel-perfect   Retina-ready   Fast   Consistent   Hackable https://img.shields.io/shippable/54d119db5ab6cc13528ab183/master.svg + Snap CI branch: + + https://img.shields.io/snap-ci/snap-ci/snap-deploy/master.svg + Jenkins: https://img.shields.io/jenkins/s/https/jenkins.qa.ubuntu.com/precise-desktop-amd64_default.svg From 8132f9b2fb1b21778f5c0f776886316f74c02b9f Mon Sep 17 00:00:00 2001 From: Pine Mizune Date: Wed, 22 Jul 2015 20:01:18 +0900 Subject: [PATCH 2/3] Fix indicated points by PR --- server.js | 5 ++--- try.html | 4 ++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/server.js b/server.js index 7509687..bb49fb2 100644 --- a/server.js +++ b/server.js @@ -4000,15 +4000,14 @@ cache(function(data, match, sendBadge, request) { sendBadge(format, badgeData); return; } - console.log(badgeData.text[1]); try { - badgeData.text[1] = res; + badgeData.text[1] = res.toLowerCase(); if (res === 'Passed') { badgeData.colorscheme = 'brightgreen'; } else if (res === 'Failed') { badgeData.colorscheme = 'red'; } else { - badgeData.text[1] = res; + badgeData.text[1] = res.toLowerCase(); } sendBadge(format, badgeData); diff --git a/try.html b/try.html index a783723..02545a0 100644 --- a/try.html +++ b/try.html @@ -125,8 +125,8 @@ Pixel-perfect   Retina-ready   Fast   Consistent   Hackable https://img.shields.io/shippable/54d119db5ab6cc13528ab183/master.svg Snap CI branch: - - https://img.shields.io/snap-ci/snap-ci/snap-deploy/master.svg + + https://img.shields.io/snap-ci/ThoughtWorksStudios/eb_deployer/master.svg Jenkins: From 87d20e4a86f6aec336e0938549dd97f99144bbdb Mon Sep 17 00:00:00 2001 From: Pine Mizune Date: Sat, 15 Aug 2015 14:19:06 +0900 Subject: [PATCH 3/3] Remove unnecessary code --- server.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/server.js b/server.js index bb49fb2..7f69581 100644 --- a/server.js +++ b/server.js @@ -4006,8 +4006,6 @@ cache(function(data, match, sendBadge, request) { badgeData.colorscheme = 'brightgreen'; } else if (res === 'Failed') { badgeData.colorscheme = 'red'; - } else { - badgeData.text[1] = res.toLowerCase(); } sendBadge(format, badgeData);