From ca25b816fabe15ce1ebc539c0316beba813683b8 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Tue, 13 Mar 2018 15:29:12 +0100 Subject: move scripts to monorepro-scripts --- packages/connect/package.json | 6 ++- packages/connect/scripts/postpublish.js | 45 ---------------------- packages/connect/scripts/stagedocs.js | 30 --------------- packages/connect/src/globals.d.ts | 1 + .../connect/src/monorepo_scripts/postpublish.ts | 43 +++++++++++++++++++++ packages/connect/src/monorepo_scripts/stagedocs.ts | 29 ++++++++++++++ 6 files changed, 77 insertions(+), 77 deletions(-) delete mode 100644 packages/connect/scripts/postpublish.js delete mode 100644 packages/connect/scripts/stagedocs.js create mode 100644 packages/connect/src/monorepo_scripts/postpublish.ts create mode 100644 packages/connect/src/monorepo_scripts/stagedocs.ts (limited to 'packages/connect') diff --git a/packages/connect/package.json b/packages/connect/package.json index c8714a93a..0c4db7f60 100644 --- a/packages/connect/package.json +++ b/packages/connect/package.json @@ -13,8 +13,8 @@ "types": "lib/src/index.d.ts", "scripts": { "build:watch": "tsc -w", - "build": "tsc", - "clean": "shx rm -rf _bundles lib test_temp", + "build": "tsc && copyfiles -u 3 './lib/src/monorepo_scripts/**/*' ./scripts", + "clean": "shx rm -rf _bundles lib test_temp scripts", "docs:json": "typedoc --excludePrivate --excludeExternals --target ES5 --json $JSON_FILE_PATH $PROJECT_FILES", "upload_docs_json": "aws s3 cp generated_docs/index.json $S3_URL --profile 0xproject --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers --content-type application/json", "copy_test_fixtures": "copyfiles -u 2 './test/fixtures/**/*.json' ./lib/test/fixtures", @@ -46,12 +46,14 @@ "websocket": "^1.0.25" }, "devDependencies": { + "@0xproject/monorepo-scripts": "^0.1.12", "@0xproject/tslint-config": "^0.4.10", "@types/fetch-mock": "^5.12.1", "@types/lodash": "^4.14.86", "@types/mocha": "^2.2.42", "@types/query-string": "^5.0.1", "@types/websocket": "^0.0.34", + "async-child-process": "^1.1.1", "chai": "^4.0.1", "chai-as-promised": "^7.1.0", "chai-as-promised-typescript-typings": "^0.0.10", diff --git a/packages/connect/scripts/postpublish.js b/packages/connect/scripts/postpublish.js deleted file mode 100644 index e447615f9..000000000 --- a/packages/connect/scripts/postpublish.js +++ /dev/null @@ -1,45 +0,0 @@ -const execAsync = require('async-child-process').execAsync; -const postpublish_utils = require('../../../scripts/postpublish_utils'); -const packageJSON = require('../package.json'); -const tsConfig = require('../tsconfig.json'); - -const cwd = __dirname + '/..'; -const subPackageName = packageJSON.name; -const S3BucketPath = 's3://connect-docs-jsons/'; -// Include any external packages that are part of the @0xproject/connect public interface -// to this array so that TypeDoc picks it up and adds it to the Docs JSON -const fileIncludes = [...tsConfig.include]; -const fileIncludesAdjusted = postpublish_utils.adjustFileIncludePaths(fileIncludes, __dirname); -const projectFiles = fileIncludesAdjusted.join(' '); - -let tag; -let version; -postpublish_utils - .getLatestTagAndVersionAsync(subPackageName) - .then(function(result) { - tag = result.tag; - version = result.version; - const releaseName = postpublish_utils.getReleaseName(subPackageName, version); - return postpublish_utils.publishReleaseNotesAsync(tag, releaseName); - }) - .then(function(release) { - console.log('POSTPUBLISH: Release successful, generating docs...'); - const jsonFilePath = __dirname + '/../' + postpublish_utils.generatedDocsDirectoryName + '/index.json'; - return execAsync('JSON_FILE_PATH=' + jsonFilePath + ' PROJECT_FILES="' + projectFiles + '" yarn docs:json', { - cwd, - }); - }) - .then(function(result) { - if (result.stderr !== '') { - throw new Error(result.stderr); - } - const fileName = 'v' + version + '.json'; - console.log('POSTPUBLISH: Doc generation successful, uploading docs... as ', fileName); - const s3Url = S3BucketPath + fileName; - return execAsync('S3_URL=' + s3Url + ' yarn upload_docs_json', { - cwd, - }); - }) - .catch(function(err) { - throw err; - }); diff --git a/packages/connect/scripts/stagedocs.js b/packages/connect/scripts/stagedocs.js deleted file mode 100644 index 58272ab86..000000000 --- a/packages/connect/scripts/stagedocs.js +++ /dev/null @@ -1,30 +0,0 @@ -const execAsync = require('async-child-process').execAsync; -const postpublish_utils = require('../../../scripts/postpublish_utils'); -const tsConfig = require('../tsconfig.json'); - -const cwd = __dirname + '/..'; -const S3BucketPath = 's3://staging-connect-docs-jsons/'; -const jsonFilePath = __dirname + '/../' + postpublish_utils.generatedDocsDirectoryName + '/index.json'; -const version = process.env.DOCS_VERSION; -// Include any external packages that are part of the @0xproject/connect public interface -// to this array so that TypeDoc picks it up and adds it to the Docs JSON -const fileIncludes = [...tsConfig.include]; -const fileIncludesAdjusted = postpublish_utils.adjustFileIncludePaths(fileIncludes, __dirname); -const projectFiles = fileIncludesAdjusted.join(' '); - -execAsync('JSON_FILE_PATH=' + jsonFilePath + ' PROJECT_FILES="' + projectFiles + '" yarn docs:json', { - cwd, -}) - .then(function(result) { - if (result.stderr !== '') { - throw new Error(result.stderr); - } - const fileName = 'v' + version + '.json'; - const s3Url = S3BucketPath + fileName; - return execAsync('S3_URL=' + s3Url + ' yarn upload_docs_json', { - cwd, - }); - }) - .catch(function(err) { - console.log(err); - }); diff --git a/packages/connect/src/globals.d.ts b/packages/connect/src/globals.d.ts index 078e189cd..cb71dcdd1 100644 --- a/packages/connect/src/globals.d.ts +++ b/packages/connect/src/globals.d.ts @@ -1,3 +1,4 @@ +declare module 'async-child-process'; declare module 'dirty-chai'; declare module '*.json' { diff --git a/packages/connect/src/monorepo_scripts/postpublish.ts b/packages/connect/src/monorepo_scripts/postpublish.ts new file mode 100644 index 000000000..4cb8bf071 --- /dev/null +++ b/packages/connect/src/monorepo_scripts/postpublish.ts @@ -0,0 +1,43 @@ +import { postpublishUtils } from '@0xproject/monorepo-scripts'; +import { execAsync } from 'async-child-process'; +import * as _ from 'lodash'; + +import * as packageJSON from '../package.json'; +import * as tsConfig from '../tsconfig.json'; + +const cwd = `${__dirname}/..`; +const subPackageName = (packageJSON as any).name; +// Include any external packages that are part of the @0xproject/connect public interface +// to this array so that TypeDoc picks it up and adds it to the Docs JSON +const fileIncludes = [...(tsConfig as any).include]; +const fileIncludesAdjusted = postpublishUtils.adjustFileIncludePaths(fileIncludes, __dirname); +const projectFiles = fileIncludesAdjusted.join(' '); +const S3BucketPath = 's3://connect-docs-jsons/'; + +(async () => { + const tagAndVersion = await postpublishUtils.getLatestTagAndVersionAsync(subPackageName); + const tag = tagAndVersion.tag; + const version = tagAndVersion.version; + + const releaseName = postpublishUtils.getReleaseName(subPackageName, version); + const assets = [`${__dirname}/../_bundles/index.js`, `${__dirname}/../_bundles/index.min.js`]; + const release = await postpublishUtils.publishReleaseNotesAsync(tag, releaseName, assets); + + // tslint:disable-next-line:no-console + console.log('POSTPUBLISH: Release successful, generating docs...'); + const jsonFilePath = `${__dirname}/../${postpublishUtils.generatedDocsDirectoryName}/index.json`; + + const result = await execAsync(`JSON_FILE_PATH=${jsonFilePath} PROJECT_FILES="${projectFiles}" yarn docs:json`, { + cwd, + }); + if (!_.isEmpty(result.stderr)) { + throw new Error(result.stderr); + } + const fileName = `v${version}.json`; + // tslint:disable-next-line:no-console + console.log(`POSTPUBLISH: Doc generation successful, uploading docs... as ${fileName}`); + const s3Url = S3BucketPath + fileName; + return execAsync(`S3_URL=${s3Url} yarn upload_docs_json`, { + cwd, + }); +})().catch(console.error); diff --git a/packages/connect/src/monorepo_scripts/stagedocs.ts b/packages/connect/src/monorepo_scripts/stagedocs.ts new file mode 100644 index 000000000..ae0383ed7 --- /dev/null +++ b/packages/connect/src/monorepo_scripts/stagedocs.ts @@ -0,0 +1,29 @@ +import { postpublishUtils } from '@0xproject/monorepo-scripts'; +import { execAsync } from 'async-child-process'; +import * as _ from 'lodash'; + +import * as tsConfig from '../tsconfig.json'; + +const cwd = __dirname + '/..'; +const S3BucketPath = 's3://staging-connect-docs-jsons/'; +// Include any external packages that are part of the @0xproject/connect public interface +// to this array so that TypeDoc picks it up and adds it to the Docs JSON +const fileIncludes = [...(tsConfig as any).include]; +const fileIncludesAdjusted = postpublishUtils.adjustFileIncludePaths(fileIncludes, __dirname); +const projectFiles = fileIncludesAdjusted.join(' '); +const jsonFilePath = `${__dirname}/../${postpublishUtils.generatedDocsDirectoryName}/index.json`; +const version = process.env.DOCS_VERSION; + +(async () => { + const result = await execAsync(`JSON_FILE_PATH=${jsonFilePath} PROJECT_FILES="${projectFiles}" yarn docs:json`, { + cwd, + }); + if (!_.isEmpty(result.stderr)) { + throw new Error(result.stderr); + } + const fileName = `v${version}.json`; + const s3Url = S3BucketPath + fileName; + return execAsync(`S3_URL=${s3Url} yarn upload_docs_json`, { + cwd, + }); +})().catch(console.error); -- cgit From dba1b8a7e92ebd18132e0e714d5109f87b9ab7a9 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Tue, 13 Mar 2018 17:55:16 +0100 Subject: Consolidate docs generation and uploading logic --- packages/connect/src/monorepo_scripts/postpublish.ts | 17 +---------------- packages/connect/src/monorepo_scripts/stagedocs.ts | 14 ++------------ 2 files changed, 3 insertions(+), 28 deletions(-) (limited to 'packages/connect') diff --git a/packages/connect/src/monorepo_scripts/postpublish.ts b/packages/connect/src/monorepo_scripts/postpublish.ts index 4cb8bf071..ecbd26872 100644 --- a/packages/connect/src/monorepo_scripts/postpublish.ts +++ b/packages/connect/src/monorepo_scripts/postpublish.ts @@ -11,7 +11,6 @@ const subPackageName = (packageJSON as any).name; // to this array so that TypeDoc picks it up and adds it to the Docs JSON const fileIncludes = [...(tsConfig as any).include]; const fileIncludesAdjusted = postpublishUtils.adjustFileIncludePaths(fileIncludes, __dirname); -const projectFiles = fileIncludesAdjusted.join(' '); const S3BucketPath = 's3://connect-docs-jsons/'; (async () => { @@ -25,19 +24,5 @@ const S3BucketPath = 's3://connect-docs-jsons/'; // tslint:disable-next-line:no-console console.log('POSTPUBLISH: Release successful, generating docs...'); - const jsonFilePath = `${__dirname}/../${postpublishUtils.generatedDocsDirectoryName}/index.json`; - - const result = await execAsync(`JSON_FILE_PATH=${jsonFilePath} PROJECT_FILES="${projectFiles}" yarn docs:json`, { - cwd, - }); - if (!_.isEmpty(result.stderr)) { - throw new Error(result.stderr); - } - const fileName = `v${version}.json`; - // tslint:disable-next-line:no-console - console.log(`POSTPUBLISH: Doc generation successful, uploading docs... as ${fileName}`); - const s3Url = S3BucketPath + fileName; - return execAsync(`S3_URL=${s3Url} yarn upload_docs_json`, { - cwd, - }); + await postpublishUtils.generateAndUploadDocsAsync(__dirname, cwd, fileIncludesAdjusted, version, S3BucketPath); })().catch(console.error); diff --git a/packages/connect/src/monorepo_scripts/stagedocs.ts b/packages/connect/src/monorepo_scripts/stagedocs.ts index ae0383ed7..efd3ad62d 100644 --- a/packages/connect/src/monorepo_scripts/stagedocs.ts +++ b/packages/connect/src/monorepo_scripts/stagedocs.ts @@ -12,18 +12,8 @@ const fileIncludes = [...(tsConfig as any).include]; const fileIncludesAdjusted = postpublishUtils.adjustFileIncludePaths(fileIncludes, __dirname); const projectFiles = fileIncludesAdjusted.join(' '); const jsonFilePath = `${__dirname}/../${postpublishUtils.generatedDocsDirectoryName}/index.json`; -const version = process.env.DOCS_VERSION; +const version = process.env.DOCS_VERSION || '0.0.0'; (async () => { - const result = await execAsync(`JSON_FILE_PATH=${jsonFilePath} PROJECT_FILES="${projectFiles}" yarn docs:json`, { - cwd, - }); - if (!_.isEmpty(result.stderr)) { - throw new Error(result.stderr); - } - const fileName = `v${version}.json`; - const s3Url = S3BucketPath + fileName; - return execAsync(`S3_URL=${s3Url} yarn upload_docs_json`, { - cwd, - }); + await postpublishUtils.generateAndUploadDocsAsync(__dirname, cwd, fileIncludesAdjusted, version, S3BucketPath); })().catch(console.error); -- cgit From f7c1e10b5ac112866ee55e7fededdb37c890d30f Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Wed, 14 Mar 2018 14:07:24 +0100 Subject: Move configuration into package.json configs section --- packages/connect/package.json | 9 ++++++++ .../connect/src/monorepo_scripts/postpublish.ts | 26 +++------------------- packages/connect/src/monorepo_scripts/stagedocs.ts | 21 +++++------------ 3 files changed, 17 insertions(+), 39 deletions(-) (limited to 'packages/connect') diff --git a/packages/connect/package.json b/packages/connect/package.json index 0c4db7f60..8b3b24fcd 100644 --- a/packages/connect/package.json +++ b/packages/connect/package.json @@ -23,6 +23,15 @@ "test": "run-s clean build copy_test_fixtures run_mocha", "test:circleci": "yarn test" }, + "config": { + "postpublish": { + "assets": ["_bundles/index.js", "_bundles/index.min.js"], + "docPublishConfigs": { + "s3BucketPath": "s3://connect-docs-jsons/", + "s3StagingBucketPath": "s3://staging-connect-docs-jsons/" + } + } + }, "repository": { "type": "git", "url": "https://github.com/0xProject/0x-monorepo.git" diff --git a/packages/connect/src/monorepo_scripts/postpublish.ts b/packages/connect/src/monorepo_scripts/postpublish.ts index ecbd26872..dcb99d0f7 100644 --- a/packages/connect/src/monorepo_scripts/postpublish.ts +++ b/packages/connect/src/monorepo_scripts/postpublish.ts @@ -1,28 +1,8 @@ import { postpublishUtils } from '@0xproject/monorepo-scripts'; -import { execAsync } from 'async-child-process'; -import * as _ from 'lodash'; import * as packageJSON from '../package.json'; -import * as tsConfig from '../tsconfig.json'; +import * as tsConfigJSON from '../tsconfig.json'; const cwd = `${__dirname}/..`; -const subPackageName = (packageJSON as any).name; -// Include any external packages that are part of the @0xproject/connect public interface -// to this array so that TypeDoc picks it up and adds it to the Docs JSON -const fileIncludes = [...(tsConfig as any).include]; -const fileIncludesAdjusted = postpublishUtils.adjustFileIncludePaths(fileIncludes, __dirname); -const S3BucketPath = 's3://connect-docs-jsons/'; - -(async () => { - const tagAndVersion = await postpublishUtils.getLatestTagAndVersionAsync(subPackageName); - const tag = tagAndVersion.tag; - const version = tagAndVersion.version; - - const releaseName = postpublishUtils.getReleaseName(subPackageName, version); - const assets = [`${__dirname}/../_bundles/index.js`, `${__dirname}/../_bundles/index.min.js`]; - const release = await postpublishUtils.publishReleaseNotesAsync(tag, releaseName, assets); - - // tslint:disable-next-line:no-console - console.log('POSTPUBLISH: Release successful, generating docs...'); - await postpublishUtils.generateAndUploadDocsAsync(__dirname, cwd, fileIncludesAdjusted, version, S3BucketPath); -})().catch(console.error); +// tslint:disable-next-line:no-floating-promises +postpublishUtils.runAsync(packageJSON, tsConfigJSON, cwd); diff --git a/packages/connect/src/monorepo_scripts/stagedocs.ts b/packages/connect/src/monorepo_scripts/stagedocs.ts index efd3ad62d..e732ac8eb 100644 --- a/packages/connect/src/monorepo_scripts/stagedocs.ts +++ b/packages/connect/src/monorepo_scripts/stagedocs.ts @@ -1,19 +1,8 @@ import { postpublishUtils } from '@0xproject/monorepo-scripts'; -import { execAsync } from 'async-child-process'; -import * as _ from 'lodash'; -import * as tsConfig from '../tsconfig.json'; +import * as packageJSON from '../package.json'; +import * as tsConfigJSON from '../tsconfig.json'; -const cwd = __dirname + '/..'; -const S3BucketPath = 's3://staging-connect-docs-jsons/'; -// Include any external packages that are part of the @0xproject/connect public interface -// to this array so that TypeDoc picks it up and adds it to the Docs JSON -const fileIncludes = [...(tsConfig as any).include]; -const fileIncludesAdjusted = postpublishUtils.adjustFileIncludePaths(fileIncludes, __dirname); -const projectFiles = fileIncludesAdjusted.join(' '); -const jsonFilePath = `${__dirname}/../${postpublishUtils.generatedDocsDirectoryName}/index.json`; -const version = process.env.DOCS_VERSION || '0.0.0'; - -(async () => { - await postpublishUtils.generateAndUploadDocsAsync(__dirname, cwd, fileIncludesAdjusted, version, S3BucketPath); -})().catch(console.error); +const cwd = `${__dirname}/..`; +// tslint:disable-next-line:no-floating-promises +postpublishUtils.publishDocsToStagingAsync(packageJSON, tsConfigJSON, cwd); -- cgit