From 8a51362bccbd6487dd1ed8518443b16ba6114fd8 Mon Sep 17 00:00:00 2001 From: Ander Conselvan de Oliveira Date: Tue, 5 Mar 2019 16:44:17 +0200 Subject: [build] Upload documentation coverage metrics to S3 --- scripts/publish_doxygen_coverage.js | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) (limited to 'scripts') 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; }); }); -- cgit v1.2.1