aboutsummaryrefslogtreecommitdiffstats
path: root/packages/0x.js/scripts/postpublish.js
diff options
context:
space:
mode:
authorBrandon Millman <brandon.millman@gmail.com>2017-11-16 04:14:30 +0800
committerBrandon Millman <brandon.millman@gmail.com>2017-11-16 04:46:58 +0800
commit6096fe75d338a82a614d663f7c32ada6c6c7574f (patch)
treebdb9fb436af1ee8980173a0e1085a3290e502ccd /packages/0x.js/scripts/postpublish.js
parenta9fbe921a04d2828bd17a60598a3eee0ec63445b (diff)
downloaddexon-sol-tools-6096fe75d338a82a614d663f7c32ada6c6c7574f.tar.gz
dexon-sol-tools-6096fe75d338a82a614d663f7c32ada6c6c7574f.tar.zst
dexon-sol-tools-6096fe75d338a82a614d663f7c32ada6c6c7574f.zip
WIP
Diffstat (limited to 'packages/0x.js/scripts/postpublish.js')
-rw-r--r--packages/0x.js/scripts/postpublish.js76
1 files changed, 58 insertions, 18 deletions
diff --git a/packages/0x.js/scripts/postpublish.js b/packages/0x.js/scripts/postpublish.js
index c2dffa920..ff425adbb 100644
--- a/packages/0x.js/scripts/postpublish.js
+++ b/packages/0x.js/scripts/postpublish.js
@@ -1,32 +1,72 @@
const execAsync = require('async-child-process').execAsync;
const semverSort = require('semver-sort');
+const publishRelease = require('publish-release');
+const promisify = require('es6-promisify');
+const prompt = require('prompt');
-const packagePrefix = '0x.js@';
-const gitTagsCommand = 'git tags -l "' + packagePrefix + '*"';
-let latestTag;
-execAsync(gitTagsCommand)
+const publishReleaseAsync = promisify(publishRelease);
+const promptGetAsync = promisify(prompt.get);
+const subPackageName = '0x.js';
+const subPackagePrefix = subPackageName + '@';
+const githubPersonalAccessToken = process.env.GITHUB_PERSONAL_ACCESS_TOKEN_0X_JS;
+let tag;
+
+getLatestTagAndVersionAsync(subPackageName)
.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(packagePrefix.length);
- });
- const sortedVersions = semverSort.desc(versions);
- latestTag = packagePrefix + sortedVersions[0];
- return execAsync('LATEST_TAG=' + latestTag + ' yarn release');
+ console.log('POSTPUBLISH: Releasing...');
+ tag = result.tag;
+ const releaseName = subPackageName + ' v' + result.version;
+ return publishReleaseAsync({
+ token: githubPersonalAccessToken,
+ owner: '0xProject',
+ repo: '0x.js',
+ tag: tag,
+ name: releaseName,
+ notes: 'TODO',
+ draft: false,
+ prerelease: false,
+ reuseRelease: true,
+ reuseDraftOnly: false,
+ assets: ['_bundles/index.js', '_bundles/index.min.js'],
+ });
})
- .then(function(result) {
- if (result.stderr !== '') {
- throw new Error(result.stderr);
+ .then(function(err, release) {
+ if (err !== null) {
+ throw err;
}
+ console.log('POSTPUBLISH: Release successful, generating docs...');
return execAsync('yarn docs:json');
})
.then(function(result) {
if (result.stderr !== '') {
throw new Error(result.stderr);
}
- const s3Url = 's3://0xjs-docs-jsons/v' + latestTag +'.json';
+ console.log('POSTPUBLISH: Doc generation successful, uploading docs...');
+ const s3Url = 's3://0xjs-docs-jsons/v' + tag +'.json';
return execAsync('S3_URL=' + s3Url + ' yarn upload_docs_json');
});
+
+ // "release": "publish-release --assets _bundles/index.js,_bundles/index.min.js --tag $LATEST_TAG --owner 0xProject --repo 0x.js --notes TODO --name $RELEASE_NAME",
+
+function getLatestTagAndVersionAsync(subPackageName) {
+ const subPackagePrefix = subPackageName + '@';
+ const gitTagsCommand = 'git tags -l "' + subPackagePrefix + '*"';
+ console.log(gitTagsCommand);
+ 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
+ };
+ });
+}