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/0x.js/src/monorepo_scripts/postpublish.ts | 17 +------------- packages/0x.js/src/monorepo_scripts/stagedocs.ts | 15 ++----------- .../connect/src/monorepo_scripts/postpublish.ts | 17 +------------- packages/connect/src/monorepo_scripts/stagedocs.ts | 14 ++---------- packages/monorepo-scripts/src/postpublish_utils.ts | 26 ++++++++++++++++++++++ 5 files changed, 32 insertions(+), 57 deletions(-) (limited to 'packages') diff --git a/packages/0x.js/src/monorepo_scripts/postpublish.ts b/packages/0x.js/src/monorepo_scripts/postpublish.ts index 8e2692c93..88be6444f 100644 --- a/packages/0x.js/src/monorepo_scripts/postpublish.ts +++ b/packages/0x.js/src/monorepo_scripts/postpublish.ts @@ -12,7 +12,6 @@ const subPackageName = (packageJSON as any).name; // So far, we only have @0xproject/types as part of 0x.js's public interface. const fileIncludes = [...(tsConfig as any).include, '../types/src/index.ts']; const fileIncludesAdjusted = postpublishUtils.adjustFileIncludePaths(fileIncludes, __dirname); -const projectFiles = fileIncludesAdjusted.join(' '); const S3BucketPath = 's3://0xjs-docs-jsons/'; (async () => { @@ -26,19 +25,5 @@ const S3BucketPath = 's3://0xjs-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/0x.js/src/monorepo_scripts/stagedocs.ts b/packages/0x.js/src/monorepo_scripts/stagedocs.ts index 20355c52c..525d6a96f 100644 --- a/packages/0x.js/src/monorepo_scripts/stagedocs.ts +++ b/packages/0x.js/src/monorepo_scripts/stagedocs.ts @@ -11,20 +11,9 @@ const S3BucketPath = 's3://staging-0xjs-docs-jsons/'; // So far, we only have @0xproject/types as part of 0x.js's public interface. const fileIncludes = [...(tsConfig as any).include, '../types/src/index.ts']; 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); 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); diff --git a/packages/monorepo-scripts/src/postpublish_utils.ts b/packages/monorepo-scripts/src/postpublish_utils.ts index 6c8771c6f..a36408ccd 100644 --- a/packages/monorepo-scripts/src/postpublish_utils.ts +++ b/packages/monorepo-scripts/src/postpublish_utils.ts @@ -81,5 +81,31 @@ export const postpublishUtils = { }); return fileIncludesAdjusted; }, + async generateAndUploadDocsAsync( + dirname: string, + cwd: string, + includedFiles: string[], + version: string, + S3BucketPath: string, + ) { + const jsonFilePath = `${dirname}/../${postpublishUtils.generatedDocsDirectoryName}/index.json`; + const projectFiles = includedFiles.join(' '); + 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`; + utils.log(`POSTPUBLISH: Doc generation successful, uploading docs... as ${fileName}`); + const s3Url = S3BucketPath + fileName; + await execAsync(`S3_URL=${s3Url} yarn upload_docs_json`, { + cwd, + }); + utils.log(`POSTPUBLISH: Docs uploaded to S3 bucket: ${S3BucketPath}`); + }, generatedDocsDirectoryName, }; -- cgit v1.2.3