diff --git a/couchdb/frontend-stats/.couchappignore b/couchdb/frontend-stats/.couchappignore new file mode 100644 index 0000000000000000000000000000000000000000..8b9f9dd9d17808fc00f746b9c2767ab41ff1449f --- /dev/null +++ b/couchdb/frontend-stats/.couchappignore @@ -0,0 +1,7 @@ +[ + // filenames matching these regexps will not be pushed to the database + // uncomment to activate; separate entries with "," + // ".*~$" + // ".*\\.swp$" + // ".*\\.bak$" +] \ No newline at end of file diff --git a/couchdb/frontend-stats/.couchapprc b/couchdb/frontend-stats/.couchapprc new file mode 100644 index 0000000000000000000000000000000000000000..d35f20bede2b2319a5f3a28a2c99f39657fc7fe2 --- /dev/null +++ b/couchdb/frontend-stats/.couchapprc @@ -0,0 +1,7 @@ +{ + "env" : { + "default" : { + "db" : "http://localhost:5984/nighlies-reduced" + } + } +} \ No newline at end of file diff --git a/couchdb/frontend-stats/README.md b/couchdb/frontend-stats/README.md new file mode 100644 index 0000000000000000000000000000000000000000..83b0641fac240f3ee3712d4837d1119bf7ce412f --- /dev/null +++ b/couchdb/frontend-stats/README.md @@ -0,0 +1,33 @@ +## Generated CouchApp + +This is meant to be an example CouchApp and to ship with most of the CouchApp goodies. + +Clone with git: + + git clone git://github.com/couchapp/example.git + cd example + +Install with + + couchapp push . http://localhost:5984/example + +or (if you have security turned on) + + couchapp push . http://adminname:adminpass@localhost:5984/example + +You can also create this app by running + + couchapp generate example && cd example + couchapp push . http://localhost:5984/example + +Deprecated: *couchapp generate proto && cd proto* + + +## Todo + +* factor CouchApp Commonjs to jquery.couch.require.js +* use $.couch.app in app.js + +## License + +Apache 2.0 diff --git a/couchdb/frontend-stats/_id b/couchdb/frontend-stats/_id new file mode 100644 index 0000000000000000000000000000000000000000..212dd81316fd826eee46d0f3157ad1deddb66638 --- /dev/null +++ b/couchdb/frontend-stats/_id @@ -0,0 +1 @@ +_design/frontend-stats \ No newline at end of file diff --git a/couchdb/frontend-stats/couchapp.json b/couchdb/frontend-stats/couchapp.json new file mode 100644 index 0000000000000000000000000000000000000000..982756c501d31ca75e6ff678d475dd3297c0f534 --- /dev/null +++ b/couchdb/frontend-stats/couchapp.json @@ -0,0 +1,4 @@ +{ + "name": "Fronend-stats", + "description": "View for fron-end statistics" +} \ No newline at end of file diff --git a/couchdb/frontend-stats/language b/couchdb/frontend-stats/language new file mode 100644 index 0000000000000000000000000000000000000000..f504a95f90c40efefda8c0c7e16cd9ef86f723d2 --- /dev/null +++ b/couchdb/frontend-stats/language @@ -0,0 +1 @@ +javascript \ No newline at end of file diff --git a/couchdb/frontend-stats/views/byDate/map.js b/couchdb/frontend-stats/views/byDate/map.js new file mode 100644 index 0000000000000000000000000000000000000000..9ba7961e098e084f2343c64d306d0cf58a5f9863 --- /dev/null +++ b/couchdb/frontend-stats/views/byDate/map.js @@ -0,0 +1,58 @@ +function(doc) { + if (doc.type == "slot-info") { + if(doc.date != null){ + to_emit = {}; + to_emit['slot'] = doc['slot']; + to_emit['build_id'] = doc['build_id']; + to_emit['platforms'] = {} + for(c_platform in doc['config']['platforms']){ + platform = doc['config']['platforms'][c_platform] + to_emit['platforms'][platform] = {} + for(c in doc['config']['projects']){ + build_errors = 0 + build_warnings = 0 + test_errors = 0 + test_passed = 0 + test_failed = 0 + test_untested = 0 + if(doc['config']['projects'][c]['disabled']) + continue + project = doc['config']['projects'][c]['name'] + build = doc['builds'] + if (build && build[platform] && build[platform][project]){ + build_errors = build[platform][project]['errors']; + build_warnings = build[platform][project]['warnings']; + } + tests = doc['tests'] + if (tests && tests[platform] && tests[platform][project]){ + tmp = tests[platform][project]['results']; + if(tmp){ + if(tmp['FAIL']){ + test_failed = tmp['FAIL'].length + } + if(tmp['PASS']){ + test_passed = tmp['PASS'].length + } + if(tmp['UNTESTED']){ + test_untested = tmp['UNTESTED'].length + } + if(tmp['ERROR']){ + test_errors = tmp['ERROR'].length + } + } + } + + to_emit['platforms'][platform][project] = { + 'build_errors': build_errors, + 'build_warnings': build_warnings, + 'test_errors': test_errors, + 'test_passed': test_passed, + 'test_failed': test_failed, + 'test_untested': test_untested + } + } + } + emit(doc.date, to_emit); + } + } +} \ No newline at end of file