diff options
author | Fabio Berger <me@fabioberger.com> | 2017-11-18 04:09:48 +0800 |
---|---|---|
committer | Fabio Berger <me@fabioberger.com> | 2017-11-18 04:09:48 +0800 |
commit | 5277d4a2666a795d01b7d3d4d018ca6d0e42399f (patch) | |
tree | 14e207bf676dbdc84de3f4449c28a103740d094f /scripts/postpublish_utils.js | |
parent | f25b2d9ab9bfc9410e17d1ee7a4bf0074aaa622c (diff) | |
download | dexon-sol-tools-5277d4a2666a795d01b7d3d4d018ca6d0e42399f.tar dexon-sol-tools-5277d4a2666a795d01b7d3d4d018ca6d0e42399f.tar.gz dexon-sol-tools-5277d4a2666a795d01b7d3d4d018ca6d0e42399f.tar.bz2 dexon-sol-tools-5277d4a2666a795d01b7d3d4d018ca6d0e42399f.tar.lz dexon-sol-tools-5277d4a2666a795d01b7d3d4d018ca6d0e42399f.tar.xz dexon-sol-tools-5277d4a2666a795d01b7d3d4d018ca6d0e42399f.tar.zst dexon-sol-tools-5277d4a2666a795d01b7d3d4d018ca6d0e42399f.zip |
Move most of code for getting latest tag/version and calling publish_release to postpublish_utils script in top-level dir
Diffstat (limited to 'scripts/postpublish_utils.js')
-rw-r--r-- | scripts/postpublish_utils.js | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/scripts/postpublish_utils.js b/scripts/postpublish_utils.js new file mode 100644 index 000000000..6b7be4f0e --- /dev/null +++ b/scripts/postpublish_utils.js @@ -0,0 +1,47 @@ +const execAsync = require('async-child-process').execAsync; +const semverSort = require('semver-sort'); +const promisify = require('es6-promisify'); +const publishRelease = require('publish-release'); + +const publishReleaseAsync = promisify(publishRelease); +const githubPersonalAccessToken = process.env.GITHUB_PERSONAL_ACCESS_TOKEN_0X_JS; + +module.exports = { + getLatestTagAndVersionAsync: function(subPackageName) { + const subPackagePrefix = subPackageName + '@'; + const gitTagsCommand = 'git tags -l "' + subPackagePrefix + '*"'; + return execAsync(gitTagsCommand) + .then(function(result) { + if (result.stderr !== '') { + throw new Error(result.stderr); + } + const tags = result.stdout.trim().split('\n'); + const versions = tags.map(function(tag) { + return tag.slice(subPackagePrefix.length); + }); + const sortedVersions = semverSort.desc(versions); + const latestVersion = sortedVersions[0]; + const latestTag = subPackagePrefix + latestVersion; + return { + tag: latestTag, + version: latestVersion + }; + }); + }, + publishReleaseNotes: function(tag, releaseName, assets) { + console.log('POSTPUBLISH: Releasing ', releaseName, '...'); + return publishReleaseAsync({ + token: githubPersonalAccessToken, + owner: '0xProject', + repo: '0x.js', + tag: tag, + name: releaseName, + notes: 'TODO', + draft: false, + prerelease: false, + reuseRelease: true, + reuseDraftOnly: false, + assets: assets, + }); + }, +}; |