aboutsummaryrefslogtreecommitdiffstats
path: root/packages/0x.js
diff options
context:
space:
mode:
Diffstat (limited to 'packages/0x.js')
-rw-r--r--packages/0x.js/package.json2
-rw-r--r--packages/0x.js/scripts/postpublish.js76
2 files changed, 59 insertions, 19 deletions
diff --git a/packages/0x.js/package.json b/packages/0x.js/package.json
index e2b19a440..d09396a84 100644
--- a/packages/0x.js/package.json
+++ b/packages/0x.js/package.json
@@ -14,7 +14,6 @@
"scripts": {
"prebuild": "npm run clean",
"build": "run-p build:umd:prod build:commonjs; exit 0;",
- "release": "publish-release --assets _bundles/index.js,_bundles/index.min.js --tag $LATEST_TAG --owner 0xProject --repo 0x.js",
"upload_docs_json": "aws s3 cp docs/index.json $S3_URL --profile 0xproject --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers --content-type aplication/json",
"lint": "tslint src/**/*.ts test/**/*.ts",
"test:circleci": "run-s test:coverage report_test_coverage; if [ $CIRCLE_BRANCH = \"development\" ]; then yarn test:umd; fi",
@@ -70,6 +69,7 @@
"npm-run-all": "^4.0.2",
"nyc": "^11.0.1",
"opn-cli": "^3.1.0",
+ "prompt": "^1.0.0",
"request": "^2.81.0",
"request-promise-native": "^1.0.4",
"semver-sort": "^0.0.4",
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
+ };
+ });
+}