aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFabio Berger <me@fabioberger.com>2017-11-18 04:09:48 +0800
committerFabio Berger <me@fabioberger.com>2017-11-18 04:09:48 +0800
commit5277d4a2666a795d01b7d3d4d018ca6d0e42399f (patch)
tree14e207bf676dbdc84de3f4449c28a103740d094f
parentf25b2d9ab9bfc9410e17d1ee7a4bf0074aaa622c (diff)
downloaddexon-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
-rw-r--r--package.json6
-rw-r--r--packages/0x.js/package.json3
-rw-r--r--packages/0x.js/scripts/postpublish.js52
-rw-r--r--scripts/postpublish_utils.js47
4 files changed, 60 insertions, 48 deletions
diff --git a/package.json b/package.json
index baccee6b4..265e0459e 100644
--- a/package.json
+++ b/package.json
@@ -13,6 +13,10 @@
"mnemonic": "concert load couple harbor equip island argue ramp clarify fence smart topic"
},
"devDependencies": {
- "lerna": "^2.5.1"
+ "lerna": "^2.5.1",
+ "async-child-process": "^1.1.1",
+ "semver-sort": "^0.0.4",
+ "publish-release": "0xproject/publish-release",
+ "es6-promisify": "^5.0.0"
}
}
diff --git a/packages/0x.js/package.json b/packages/0x.js/package.json
index e1f0bb93e..c381d3898 100644
--- a/packages/0x.js/package.json
+++ b/packages/0x.js/package.json
@@ -70,7 +70,6 @@
"prompt": "^1.0.0",
"request": "^2.81.0",
"request-promise-native": "^1.0.4",
- "semver-sort": "^0.0.4",
"shx": "^0.2.2",
"sinon": "^4.0.0",
"source-map-support": "^0.5.0",
@@ -90,14 +89,12 @@
"bignumber.js": "~4.1.0",
"bn.js": "4.11.8",
"compare-versions": "^3.0.1",
- "es6-promisify": "^5.0.0",
"ethereumjs-abi": "^0.6.4",
"ethereumjs-blockstream": "^2.0.6",
"ethereumjs-util": "^5.1.1",
"find-versions": "^2.0.0",
"js-sha3": "^0.6.1",
"lodash": "^4.17.4",
- "publish-release": "0xproject/publish-release",
"uuid": "^3.1.0",
"web3": "^0.20.0"
}
diff --git a/packages/0x.js/scripts/postpublish.js b/packages/0x.js/scripts/postpublish.js
index 4512fb24c..e68302b33 100644
--- a/packages/0x.js/scripts/postpublish.js
+++ b/packages/0x.js/scripts/postpublish.js
@@ -1,39 +1,25 @@
const execAsync = require('async-child-process').execAsync;
-const semverSort = require('semver-sort');
-const publishRelease = require('publish-release');
-const promisify = require('es6-promisify');
-const typedoc = require('typedoc');
+const postpublish_utils = require('../../../scripts/postpublish_utils');
const cwd = __dirname + '/..';
-const publishReleaseAsync = promisify(publishRelease);
const subPackageName = '0x.js';
-const githubPersonalAccessToken = process.env.GITHUB_PERSONAL_ACCESS_TOKEN_0X_JS;
let tag;
let version;
-getLatestTagAndVersionAsync(subPackageName)
+postpublish_utils.getLatestTagAndVersionAsync(subPackageName)
.then(function(result) {
console.log('POSTPUBLISH: Releasing...');
tag = result.tag;
version = result.version;
- const releaseName = subPackageName + ' v' + result.version;
- return publishReleaseAsync({
- token: githubPersonalAccessToken,
- owner: '0xProject',
- repo: '0x.js',
- tag: tag,
- name: releaseName,
- notes: 'TODO',
- draft: false,
- prerelease: true,
- reuseRelease: true,
- reuseDraftOnly: false,
- assets: [__dirname + '/../_bundles/index.js', __dirname + '/../_bundles/index.min.js'],
- });
+ const releaseName = subPackageName + ' v' + version;
+ const assets = [
+ __dirname + '/../_bundles/index.js',
+ __dirname + '/../_bundles/index.min.js',
+ ];
+ return postpublish_utils.publishReleaseNotes(tag, releaseName, assets);
})
.then(function(release) {
console.log('POSTPUBLISH: Release successful, generating docs...');
-
return execAsync(
'JSON_FILE_PATH=' + __dirname + '/../docs/index.json PROJECT_DIR=' + __dirname + '/.. yarn docs:json',
{
@@ -54,25 +40,3 @@ getLatestTagAndVersionAsync(subPackageName)
}).catch (function(err) {
throw err;
});
-
-function getLatestTagAndVersionAsync(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
- };
- });
-}
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,
+ });
+ },
+};