summaryrefslogtreecommitdiff
path: root/scripts/publish_doxygen_coverage.js
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/publish_doxygen_coverage.js')
-rwxr-xr-xscripts/publish_doxygen_coverage.js28
1 files changed, 27 insertions, 1 deletions
diff --git a/scripts/publish_doxygen_coverage.js b/scripts/publish_doxygen_coverage.js
index e3e564a3e1..723115d36d 100755
--- a/scripts/publish_doxygen_coverage.js
+++ b/scripts/publish_doxygen_coverage.js
@@ -2,6 +2,8 @@
const jwt = require('jsonwebtoken');
const github = require('@octokit/rest')();
+const zlib = require('zlib');
+const AWS = require('aws-sdk');
const fs = require('fs');
const SIZE_CHECK_APP_ID = 14028;
@@ -46,8 +48,9 @@ github.apps.createInstallationToken({installation_id: SIZE_CHECK_APP_INSTALLATIO
github.authenticate({type: 'token', token: data.token});
const percentage = coverage.documented * 100 / coverage.total;
const title = `${percentage.toFixed(2)}%`;
+ const date = new Date().toISOString().substring(0, 19);
- return github.checks.create({
+ var promises = [github.checks.create({
owner: 'mapbox',
repo: 'mapbox-gl-native',
name: 'Doxygen coverage',
@@ -60,5 +63,28 @@ github.apps.createInstallationToken({installation_id: SIZE_CHECK_APP_INSTALLATIO
title,
summary: `There is doxygen documentation for ${percentage}% of the public symbols (${coverage.documented} out of ${coverage.total})`
}
+ })];
+
+ if (process.env['CIRCLE_BRANCH'] === 'master') {
+ promises.push(new AWS.S3({region: 'us-east-1'}).putObject({
+ Body: zlib.gzipSync(JSON.stringify({
+ 'created_at': date,
+ 'documented': coverage.documented,
+ 'total': coverage.total,
+ 'commit': process.env['CIRCLE_SHA1']
+ })),
+ Bucket: 'mapbox-loading-dock',
+ Key: `raw/mobile_staging.docs_coverage/${date.substring(0,10)}/${process.env['CIRCLE_SHA1']}.json.gz`,
+ CacheControl: 'max-age=300',
+ ContentEncoding: 'gzip',
+ ContentType: 'application/json'
+ }).promise());
+ }
+
+ return Promise.all(promises).then(data => {
+ return console.log('Succesfully uploaded doxygen coverage metrics');
+ }).catch(err => {
+ console.log('Error uploading doxygen coverage metrics: ' + err.message);
+ return err;
});
});