diff options
author | Ander Conselvan de Oliveira <ander.deoliveira@mapbox.com> | 2019-03-05 16:44:17 +0200 |
---|---|---|
committer | Ander Conselvan de Oliveira <ander.deoliveira@mapbox.com> | 2019-03-13 15:06:56 +0200 |
commit | 8a51362bccbd6487dd1ed8518443b16ba6114fd8 (patch) | |
tree | 6353711dc0f244b32ea6a1d590aad9d0524ffa08 /scripts | |
parent | 7bac0c7cbac6333b36a91387e2cf2751b048c869 (diff) | |
download | qtlocation-mapboxgl-8a51362bccbd6487dd1ed8518443b16ba6114fd8.tar.gz |
[build] Upload documentation coverage metrics to S3
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/publish_doxygen_coverage.js | 28 |
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; }); }); |