TeamCity Coverage URL change.

This commit is contained in:
Thaddee Tyl 2014-05-26 14:24:37 +02:00
parent 1acc586bac
commit e8f8ec6ccb
2 changed files with 44 additions and 43 deletions

View File

@ -237,6 +237,49 @@ cache(function(data, match, sendBadge) {
});
}));
// TeamCity CodeBetter code coverage
camp.route(/^\/teamcity\/coverage\/(.*)\.(svg|png|gif|jpg)$/,
cache(function(data, match, sendBadge) {
var buildType = match[1]; // eg, `bt428`.
var format = match[2];
var apiUrl = 'http://teamcity.codebetter.com/app/rest/builds/buildType:(id:' + buildType + ')/statistics?guest=1';
var badgeData = getBadgeData('coverage', data);
request(apiUrl, { headers: { 'Accept': 'application/json' } }, function(err, res, buffer) {
if (err != null) {
badgeData.text[1] = 'inaccessible';
sendBadge(format, badgeData);
}
try {
var data = JSON.parse(buffer);
var covered;
var total;
data.property.forEach(function(property) {
if (property.name === 'CodeCoverageAbsSCovered') {
covered = property.value;
} else if (property.name === 'CodeCoverageAbsSTotal') {
total = property.value;
}
})
if (covered === undefined || total === undefined) {
badgeData.text[1] = 'malformed';
sendBadge(format, badgeData);
return;
}
var percentage = covered / total * 100;
badgeData.text[1] = percentage.toFixed(0) + '%';
badgeData.colorscheme = coveragePercentageColor(percentage);
sendBadge(format, badgeData);
} catch(e) {
console.log(e);
badgeData.text[1] = 'invalid';
sendBadge(format, badgeData);
}
});
}));
// TeamCity CodeBetter integration.
camp.route(/^\/teamcity\/codebetter\/(.*)\.(svg|png|gif|jpg)$/,
cache(function(data, match, sendBadge) {
@ -987,48 +1030,6 @@ cache(function(data, match, sendBadge) {
});
}));
// TeamCity CodeBetter code coverage
camp.route(/^\/teamcity\/codebetter\/(.*)\/coverage\.(svg|png|gif|jpg)$/,
cache(function(data, match, sendBadge) {
var buildType = match[1]; // eg, `bt428`.
var format = match[2];
var apiUrl = 'http://teamcity.codebetter.com/app/rest/builds/buildType:(id:' + buildType + ')/statistics?guest=1';
var badgeData = getBadgeData('coverage', data);
request(apiUrl, { headers: { 'Accept': 'application/json' } }, function(err, res, buffer) {
if (err != null) {
badgeData.text[1] = 'inaccessible';
sendBadge(format, badgeData);
}
try {
var data = JSON.parse(buffer);
var covered;
var total;
data.property.forEach(function(property) {
if (property.name === 'CodeCoverageAbsSCovered') {
covered = property.value;
} else if (property.name === 'CodeCoverageAbsSTotal') {
total = property.value;
}
})
if (covered === undefined || total === undefined) {
badgeData.text[1] = 'malformed';
sendBadge(format, badgeData);
return;
}
var percentage = covered / total * 100;
badgeData.text[1] = percentage.toFixed(0) + '%';
badgeData.colorscheme = coveragePercentageColor(percentage);
sendBadge(format, badgeData);
} catch(e) {
badgeData.text[1] = 'invalid';
sendBadge(format, badgeData);
}
});
}));
// Puppet Forge
camp.route(/^\/puppetforge\/v\/([^\/]+\/[^\/]+)\.(svg|png|gif|jpg)$/,
cache(function(data, match, sendBadge) {

View File

@ -128,7 +128,7 @@ I made the GitHub Badge Service.
<td><code>http://img.shields.io/cocoapods/p/AFNetworking.svg</code></td>
</tr>
<tr><th> TeamCity CodeBetter Coverage: </th>
<td><img src='/teamcity/codebetter/bt1242/coverage.svg' alt=''/></td>
<td><img src='/teamcity/coverage/bt1242.svg' alt=''/></td>
<td><code>http://img.shields.io/teamcity/codebetter/bt1242/coverage.svg</code></td>
</tr>
</tbody></table>