aboutsummaryrefslogtreecommitdiffstats
path: root/packages/0x.js/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/0x.js/scripts')
-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
+ };
+ });
+}