aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/postpublish_utils.js
diff options
context:
space:
mode:
authorLeonid <logvinov.leon@gmail.com>2017-11-21 04:46:53 +0800
committerGitHub <noreply@github.com>2017-11-21 04:46:53 +0800
commitd39c0bee39a7bc9cbab6810e8b1b42dfe2e6cf09 (patch)
treea02081e61b11bfb6bb643fcb4e8981541bb8d2bd /scripts/postpublish_utils.js
parent5788b90c522b63b53f5e8480f2b357ee24bb08a3 (diff)
parent037f466e1f80f635b48f3235258402e2ce75fb7b (diff)
downloaddexon-sol-tools-d39c0bee39a7bc9cbab6810e8b1b42dfe2e6cf09.tar
dexon-sol-tools-d39c0bee39a7bc9cbab6810e8b1b42dfe2e6cf09.tar.gz
dexon-sol-tools-d39c0bee39a7bc9cbab6810e8b1b42dfe2e6cf09.tar.bz2
dexon-sol-tools-d39c0bee39a7bc9cbab6810e8b1b42dfe2e6cf09.tar.lz
dexon-sol-tools-d39c0bee39a7bc9cbab6810e8b1b42dfe2e6cf09.tar.xz
dexon-sol-tools-d39c0bee39a7bc9cbab6810e8b1b42dfe2e6cf09.tar.zst
dexon-sol-tools-d39c0bee39a7bc9cbab6810e8b1b42dfe2e6cf09.zip
Merge branch 'development' into feature/orderExpired
Diffstat (limited to 'scripts/postpublish_utils.js')
-rw-r--r--scripts/postpublish_utils.js51
1 files changed, 51 insertions, 0 deletions
diff --git a/scripts/postpublish_utils.js b/scripts/postpublish_utils.js
new file mode 100644
index 000000000..3fb079bad
--- /dev/null
+++ b/scripts/postpublish_utils.js
@@ -0,0 +1,51 @@
+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,
+ });
+ },
+ getReleaseName(subPackageName, version) {
+ const releaseName = subPackageName + ' v' + version;
+ return releaseName;
+ },
+};