chiark / gitweb /
site: show coverage info in Build Status.
authorVladimír Vondruš <mosra@centrum.cz>
Sat, 23 Feb 2019 00:32:43 +0000 (01:32 +0100)
committerVladimír Vondruš <mosra@centrum.cz>
Sat, 23 Feb 2019 00:38:11 +0000 (01:38 +0100)
doc/build-status.html.in [new file with mode: 0644]
doc/build-status.js
doc/build-status.rst

diff --git a/doc/build-status.html.in b/doc/build-status.html.in
new file mode 100644 (file)
index 0000000..f3cd136
--- /dev/null
@@ -0,0 +1,46 @@
+<table class="m-table build-status">
+  <thead>
+    <tr>
+      <th style="border-bottom-width: 0;"></th>
+      <th>Python<br />3.4</th>
+      <th>Python<br />3.5</th>
+      <th>Python<br />3.6</th>
+    </tr>
+    <tr>
+      <th class="m-text-right m-text-middle" style="border-top-width: 0;">code coverage</th>
+      <td colspan="3" id="coverage-mcss"><a>&nbsp;<br/><span class="m-text m-small">&nbsp;</span></a></td>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <th class="m-text-right">Pelican theme</th>
+      <td rowspan="2" id="mcss-py34"><a>&nbsp;<br/><span class="m-text m-small">&nbsp;</span></a></td>
+      <td rowspan="3" id="mcss-py35"><a>&nbsp;<br/><span class="m-text m-small">&nbsp;</span></a></td>
+      <td rowspan="4" id="mcss-py36"><a>&nbsp;<br/><span class="m-text m-small">&nbsp;</span></a></td>
+    </tr>
+    <tr>
+      <th class="m-text-right">Pelican plugins</th>
+    </tr>
+    <tr>
+      <th class="m-text-right">Graph rendering</th>
+      <td class="m-dim"></td>
+    </tr>
+    <tr>
+      <th class="m-text-right">Doxygen theme</th>
+      <td class="m-dim"></td>
+      <td class="m-dim"></td>
+    </tr>
+    <tr>
+      <th class="m-text-right">Doxygen theme<br/>client search</th>
+      <td class="m-dim"></td>
+      <td class="m-dim"></td>
+      <td id="mcss-js"><a>&nbsp;<br/><span class="m-text m-small">&nbsp;</span></a></td>
+    </tr>
+    <tr>
+      <th class="m-text-right">Math rendering</th>
+      <td class="m-dim"></td>
+      <td class="m-dim"></td>
+      <td class="m-dim"></td>
+    </tr>
+  </tbody>
+</table>
index 074d5beaf3af65f5dfd0a0f707eacb51852c9937..cc080434279cfa8d9b55e62f8f1a682bfe5a3fe3 100644 (file)
@@ -119,6 +119,39 @@ function fetchLatestTravisJobs(project, branch) {
     req.send();
 }
 
+function fetchLatestCodecovJobs(project, branch) {
+    var req = window.XDomainRequest ? new XDomainRequest() : new XMLHttpRequest();
+    if(!req) return;
+
+    req.open("GET", 'https://codecov.io/api/gh/' + project + '/branch/' + branch, true);
+    req.responseType = 'json';
+    req.onreadystatechange = function() {
+        if(req.readyState != 4) return;
+
+        //console.log(req.response);
+
+        var repo = req.response['repo']['name'];
+        var id = 'coverage-' + repo.replace("m.css", "mcss");
+        var elem = document.getElementById(id);
+
+        var commit = req.response['commit'];
+        var coverage = (commit['totals']['c']*1.0).toFixed(1);
+        var type;
+        if(commit['state'] != 'complete') type = 'm-info';
+        else if(Math.round(coverage) > 90) type = 'm-success';
+        else if(Math.round(coverage) > 50) type = 'm-warning';
+        else type = 'm-danger';
+
+        var date = commit['updatestamp'];
+        var age = timeDiff(new Date(Date.parse(date)), new Date(Date.now()));
+
+        elem.innerHTML = '<a href="https://codecov.io/gh/mosra/' + repo + '/tree/' + commit['commitid'] + '" title="@ ' + date + '"><strong>' + coverage + '</strong>%<br /><span class="m-text m-small">' + age + '</span></a>';
+        elem.className = type;
+    };
+    req.send();
+}
+
 for(var i = 0; i != projects.length; ++i) {
     fetchLatestTravisJobs(projects[i][0], projects[i][1]);
+    fetchLatestCodecovJobs(projects[i][0], projects[i][1]);
 }
index 756cbdd99eaefd05ea5c8cc9f34ac4bc06340119..d5a13e80b976c176e944bc7da0f9007828d73564 100644 (file)
@@ -40,47 +40,8 @@ Show builds for:
 
     .. container:: m-scroll
 
-        .. raw:: html
+        .. can't name it HTML, because then Pelican tries to parse it (and
+            can't disable HTML parsing because we need that for layout tests)
 
-            <table class="m-table build-status">
-              <thead>
-                <tr>
-                  <th></th>
-                  <th>Python<br />3.4</th>
-                  <th>Python<br />3.5</th>
-                  <th>Python<br />3.6</th>
-                </tr>
-              </thead>
-              <tbody>
-                <tr>
-                  <th class="m-text-right">Pelican theme</th>
-                  <td rowspan="2" id="mcss-py34"><a>&nbsp;<br/><span class="m-text m-small">&nbsp;</span></a></td>
-                  <td rowspan="3" id="mcss-py35"><a>&nbsp;<br/><span class="m-text m-small">&nbsp;</span></a></td>
-                  <td rowspan="4" id="mcss-py36"><a>&nbsp;<br/><span class="m-text m-small">&nbsp;</span></a></td>
-                </tr>
-                <tr>
-                  <th class="m-text-right">Pelican plugins</th>
-                </tr>
-                <tr>
-                  <th class="m-text-right">Graph rendering</th>
-                  <td class="m-dim"></td>
-                </tr>
-                <tr>
-                  <th class="m-text-right">Doxygen theme</th>
-                  <td class="m-dim"></td>
-                  <td class="m-dim"></td>
-                </tr>
-                <tr>
-                  <th class="m-text-right">Doxygen theme<br/>client search</th>
-                  <td class="m-dim"></td>
-                  <td class="m-dim"></td>
-                  <td id="mcss-js"><a>&nbsp;<br/><span class="m-text m-small">&nbsp;</span></a></td>
-                </tr>
-                <tr>
-                  <th class="m-text-right">Math rendering</th>
-                  <td class="m-dim"></td>
-                  <td class="m-dim"></td>
-                  <td class="m-dim"></td>
-                </tr>
-              </tbody>
-            </table>
+        .. raw:: html
+            :file: build-status.html.in