Rewrite [appveyor] tests badge (#1940)
This commit is contained in:
53
server.js
53
server.js
@@ -647,59 +647,6 @@ cache(function (data, match, sendBadge, request) {
|
||||
});
|
||||
}));
|
||||
|
||||
// AppVeyor test status integration.
|
||||
camp.route(/^\/appveyor\/tests\/([^/]+\/[^/]+)(?:\/(.+))?\.(svg|png|gif|jpg|json)$/,
|
||||
cache(function(data, match, sendBadge, request) {
|
||||
var repo = match[1]; // eg, `gruntjs/grunt`.
|
||||
var branch = match[2];
|
||||
var format = match[3];
|
||||
var apiUrl = 'https://ci.appveyor.com/api/projects/' + repo;
|
||||
if (branch != null) {
|
||||
apiUrl += '/branch/' + branch;
|
||||
}
|
||||
var badgeData = getBadgeData('tests', data);
|
||||
request(apiUrl, { headers: { 'Accept': 'application/json' } }, function(err, res, buffer) {
|
||||
if (err != null) {
|
||||
badgeData.text[1] = 'inaccessible';
|
||||
sendBadge(format, badgeData);
|
||||
return;
|
||||
}
|
||||
try {
|
||||
if (res.statusCode === 404) {
|
||||
badgeData.text[1] = 'project not found or access denied';
|
||||
sendBadge(format, badgeData);
|
||||
return;
|
||||
}
|
||||
var data = JSON.parse(buffer);
|
||||
var testsTotal = data.build.jobs.reduce((currentValue, job) => currentValue + job.testsCount, 0);
|
||||
var testsPassed = data.build.jobs.reduce((currentValue, job) => currentValue + job.passedTestsCount, 0);
|
||||
var testsFailed = data.build.jobs.reduce((currentValue, job) => currentValue + job.failedTestsCount, 0);
|
||||
var testsSkipped = testsTotal - testsPassed - testsFailed;
|
||||
|
||||
if (testsPassed == testsTotal) {
|
||||
badgeData.colorscheme = 'brightgreen';
|
||||
} else if (testsFailed == 0 ) {
|
||||
badgeData.colorscheme = 'green';
|
||||
} else if (testsPassed == 0 ) {
|
||||
badgeData.colorscheme = 'red';
|
||||
} else{
|
||||
badgeData.colorscheme = 'orange';
|
||||
}
|
||||
|
||||
badgeData.text[1] = testsPassed + ' passed';
|
||||
if (testsFailed > 0)
|
||||
badgeData.text[1] += ', ' + testsFailed + ' failed';
|
||||
if (testsSkipped > 0)
|
||||
badgeData.text[1] += ', ' + testsSkipped + ' skipped';
|
||||
|
||||
sendBadge(format, badgeData);
|
||||
} catch(e) {
|
||||
badgeData.text[1] = 'invalid';
|
||||
sendBadge(format, badgeData);
|
||||
}
|
||||
});
|
||||
}));
|
||||
|
||||
// Old url for CodeBetter TeamCity instance.
|
||||
camp.route(/^\/teamcity\/codebetter\/(.*)\.(svg|png|gif|jpg|json)$/,
|
||||
cache(function(data, match, sendBadge, request) {
|
||||
|
||||
Reference in New Issue
Block a user