diff --git a/modules/builder/builder.ts b/modules/builder/builder.ts index b7743ddd5..b79b6d9d9 100644 --- a/modules/builder/builder.ts +++ b/modules/builder/builder.ts @@ -18,6 +18,7 @@ import SwaggerDiff from '../swagger/swaggerDiff'; import GitModule from '../git/gitModule'; import Zip from '../util/zip'; import { Models } from 'purecloud-platform-client-v2'; +import { PassThrough } from 'stream'; const log = new Logger(); @@ -43,6 +44,7 @@ export class Builder { pureCloud: PureCloud; releaseNoteTemplatePath: string = ''; releaseNoteSummaryTemplatePath: string = ''; + readmeDevelopmentEpiloguePath: string = ''; init(configPath: string, localConfigPath: string): Promise { return new Promise((resolve, reject) => { @@ -178,6 +180,10 @@ export class Builder { ? this.config.settings.releaseNoteSummaryTemplatePath : './resources/templates/releaseNoteSummary.md'; + this.readmeDevelopmentEpiloguePath = this.config.settings.readmeDevelopmentEpiloguePath + ? this.config.settings.readmeDevelopmentEpiloguePath + : path.join(getEnv('COMMON_ROOT') as string, 'resources', 'templates', 'readmeDevelopmentEpilogue.md'); + // Initialize other things git.authToken = getEnv('GITHUB_TOKEN') as string; resolve(""); @@ -294,7 +300,7 @@ function prebuildImpl(): Promise { ); }) .then(() => { - // For Jenkins only. + // For Jenkins only. if (newSwaggerTempFile.includes('build-platform-sdks-internal-pipeline') && process.argv.includes("build-contains-upstream-changes")) { if (swaggerDiff.changeCount == 0) { throw new Error('The build contains upstream changes, but the Swagger definition has not changed.'); @@ -477,9 +483,21 @@ function buildImpl(): Promise { // Copy readme from build to docs and repo root log.info('Copying readme...'); fs.ensureDirSync(path.join(getEnv('SDK_REPO') as string, 'build/docs')); - fs.createReadStream(path.join(getEnv('SDK_REPO') as string, 'build/README.md')).pipe( - fs.createWriteStream(path.join(getEnv('SDK_REPO') as string, 'build/docs/index.md')) - ); + + // Appends an epilogue to all Readme files + const readmeFileStream = fs.createReadStream(path.join(getEnv('SDK_REPO') as string, 'build/README.md')); + const readmeFileEpilogueStream = fs.createReadStream(_this.readmeDevelopmentEpiloguePath); + const passThroughStream = new PassThrough(); + readmeFileStream.pipe(passThroughStream, { end: false }); + readmeFileStream.on('end', () => { + readmeFileEpilogueStream.pipe(passThroughStream, { end: false }); + readmeFileEpilogueStream.on('end', () => { + passThroughStream.end(); + }); + }); + passThroughStream.pipe(fs.createWriteStream(path.join(getEnv('SDK_REPO') as string, 'build/docs/index.md'))); + + // Copy the readme file from build to the root directory of the repo fs.createReadStream(path.join(getEnv('SDK_REPO') as string, 'build/README.md')).pipe( fs.createWriteStream(path.join(getEnv('SDK_REPO') as string, 'README.md')) ); diff --git a/modules/types/config.ts b/modules/types/config.ts index 1c6ef9a4e..ff0755063 100644 --- a/modules/types/config.ts +++ b/modules/types/config.ts @@ -30,6 +30,7 @@ export interface Settings { enableLoggerColor: boolean; namespace: string; apiHealthCheckUrl: string; + readmeDevelopmentEpiloguePath: string; } export interface ResourcePaths { diff --git a/resources/sdk/clisdkclient/config.json b/resources/sdk/clisdkclient/config.json index 6f739695f..ae72ca2e4 100644 --- a/resources/sdk/clisdkclient/config.json +++ b/resources/sdk/clisdkclient/config.json @@ -26,6 +26,7 @@ }, "releaseNoteTemplatePath": "${COMMON_ROOT}/resources/templates/githubSdkReleaseNotes.md", "releaseNoteSummaryTemplatePath": "${COMMON_ROOT}/resources/templates/githubSdkReleaseNoteSummary.md", + "readmeDevelopmentEpiloguePath": "${COMMON_ROOT}/resources/templates/readmeDevelopmentEpilogue.md", "debugConfig": false, "enableLoggerColor": false, "mavenSettingsFilePath": "/var/build/settings.xml", diff --git a/resources/sdk/pureclouddotnet-guest/config.json b/resources/sdk/pureclouddotnet-guest/config.json index f124091f8..61be70271 100644 --- a/resources/sdk/pureclouddotnet-guest/config.json +++ b/resources/sdk/pureclouddotnet-guest/config.json @@ -30,6 +30,7 @@ }, "releaseNoteTemplatePath": "${COMMON_ROOT}/resources/templates/githubSdkReleaseNotes.md", "releaseNoteSummaryTemplatePath": "${COMMON_ROOT}/resources/templates/githubSdkReleaseNoteSummary.md", + "readmeDevelopmentEpiloguePath": "${COMMON_ROOT}/resources/templates/readmeDevelopmentEpilogue.md", "debugConfig": false, "enableLoggerColor": false, "namespace": "${DOTNET_NAMESPACE}", diff --git a/resources/sdk/pureclouddotnet/config.json b/resources/sdk/pureclouddotnet/config.json index ccb7ebec0..515336754 100644 --- a/resources/sdk/pureclouddotnet/config.json +++ b/resources/sdk/pureclouddotnet/config.json @@ -29,6 +29,7 @@ }, "releaseNoteTemplatePath": "${COMMON_ROOT}/resources/templates/githubSdkReleaseNotes.md", "releaseNoteSummaryTemplatePath": "${COMMON_ROOT}/resources/templates/githubSdkReleaseNoteSummary.md", + "readmeDevelopmentEpiloguePath": "${COMMON_ROOT}/resources/templates/readmeDevelopmentEpilogue.md", "debugConfig": false, "enableLoggerColor": false, "namespace": "${DOTNET_NAMESPACE}", diff --git a/resources/sdk/purecloudgo/config.json b/resources/sdk/purecloudgo/config.json index 28863b60a..9ff46d8a9 100644 --- a/resources/sdk/purecloudgo/config.json +++ b/resources/sdk/purecloudgo/config.json @@ -26,6 +26,7 @@ }, "releaseNoteTemplatePath": "${COMMON_ROOT}/resources/templates/githubSdkReleaseNotes.md", "releaseNoteSummaryTemplatePath": "${COMMON_ROOT}/resources/templates/githubSdkReleaseNoteSummary.md", + "readmeDevelopmentEpiloguePath": "${COMMON_ROOT}/resources/templates/readmeDevelopmentEpilogue.md", "debugConfig": false, "enableLoggerColor": false, "mavenSettingsFilePath": "/var/build/settings.xml", diff --git a/resources/sdk/purecloudios/config.json b/resources/sdk/purecloudios/config.json index 2f169ceec..8a3a09b47 100644 --- a/resources/sdk/purecloudios/config.json +++ b/resources/sdk/purecloudios/config.json @@ -23,6 +23,7 @@ }, "releaseNoteTemplatePath": "${COMMON_ROOT}/resources/templates/githubSdkReleaseNotes.md", "releaseNoteSummaryTemplatePath": "${COMMON_ROOT}/resources/templates/githubSdkReleaseNoteSummary.md", + "readmeDevelopmentEpiloguePath": "${COMMON_ROOT}/resources/templates/readmeDevelopmentEpilogue.md", "debugConfig": false, "enableLoggerColor": false, "packageName": "PureCloudPlatformClientV2", diff --git a/resources/sdk/purecloudjava-guest/config.json b/resources/sdk/purecloudjava-guest/config.json index aebf618ef..9665f42b6 100644 --- a/resources/sdk/purecloudjava-guest/config.json +++ b/resources/sdk/purecloudjava-guest/config.json @@ -26,6 +26,7 @@ }, "releaseNoteTemplatePath": "${COMMON_ROOT}/resources/templates/githubSdkReleaseNotes.md", "releaseNoteSummaryTemplatePath": "${COMMON_ROOT}/resources/templates/githubSdkReleaseNoteSummary.md", + "readmeDevelopmentEpiloguePath": "${COMMON_ROOT}/resources/templates/readmeDevelopmentEpilogue.md", "debugConfig": false, "enableLoggerColor": true, "mavenSettingsFilePath": "/var/build/settings.xml", diff --git a/resources/sdk/purecloudjava/config.json b/resources/sdk/purecloudjava/config.json index 1a387a33a..04e8279d0 100644 --- a/resources/sdk/purecloudjava/config.json +++ b/resources/sdk/purecloudjava/config.json @@ -26,6 +26,7 @@ }, "releaseNoteTemplatePath": "${COMMON_ROOT}/resources/templates/githubSdkReleaseNotes.md", "releaseNoteSummaryTemplatePath": "${COMMON_ROOT}/resources/templates/githubSdkReleaseNoteSummary.md", + "readmeDevelopmentEpiloguePath": "${COMMON_ROOT}/resources/templates/readmeDevelopmentEpilogue.md", "debugConfig": false, "enableLoggerColor": false, "mavenSettingsFilePath": "/var/build/settings.xml", diff --git a/resources/sdk/purecloudjavascript-guest/config.json b/resources/sdk/purecloudjavascript-guest/config.json index 0b669740b..a2c39cb23 100644 --- a/resources/sdk/purecloudjavascript-guest/config.json +++ b/resources/sdk/purecloudjavascript-guest/config.json @@ -26,6 +26,7 @@ }, "releaseNoteTemplatePath": "${COMMON_ROOT}/resources/templates/githubSdkReleaseNotes.md", "releaseNoteSummaryTemplatePath": "${COMMON_ROOT}/resources/templates/githubSdkReleaseNoteSummary.md", + "readmeDevelopmentEpiloguePath": "${COMMON_ROOT}/resources/templates/readmeDevelopmentEpilogue.md", "debugConfig": false, "enableLoggerColor": false, "packageName": "purecloud-guest-chat-client", diff --git a/resources/sdk/purecloudjavascript/config.json b/resources/sdk/purecloudjavascript/config.json index 4d56a4707..f9383bb90 100644 --- a/resources/sdk/purecloudjavascript/config.json +++ b/resources/sdk/purecloudjavascript/config.json @@ -25,6 +25,7 @@ }, "releaseNoteTemplatePath": "${COMMON_ROOT}/resources/templates/githubSdkReleaseNotes.md", "releaseNoteSummaryTemplatePath": "${COMMON_ROOT}/resources/templates/githubSdkReleaseNoteSummary.md", + "readmeDevelopmentEpiloguePath": "${COMMON_ROOT}/resources/templates/readmeDevelopmentEpilogue.md", "debugConfig": false, "enableLoggerColor": false, "packageName": "purecloud-platform-client-v2", diff --git a/resources/sdk/purecloudkotlin/config.json b/resources/sdk/purecloudkotlin/config.json index 1cf7079ba..f23a539f5 100644 --- a/resources/sdk/purecloudkotlin/config.json +++ b/resources/sdk/purecloudkotlin/config.json @@ -24,6 +24,7 @@ }, "releaseNoteTemplatePath": "${COMMON_ROOT}/resources/templates/githubSdkReleaseNotes.md", "releaseNoteSummaryTemplatePath": "${COMMON_ROOT}/resources/templates/githubSdkReleaseNoteSummary.md", + "readmeDevelopmentEpiloguePath": "${COMMON_ROOT}/resources/templates/readmeDevelopmentEpilogue.md", "debugConfig": false, "enableLoggerColor": false, "apiHealthCheckUrl": "https://api.mypurecloud.com/api/v2/health/check" diff --git a/resources/sdk/purecloudpython/config.json b/resources/sdk/purecloudpython/config.json index 778c08057..f132ec3cd 100644 --- a/resources/sdk/purecloudpython/config.json +++ b/resources/sdk/purecloudpython/config.json @@ -25,6 +25,7 @@ }, "releaseNoteTemplatePath": "${COMMON_ROOT}/resources/templates/githubSdkReleaseNotes.md", "releaseNoteSummaryTemplatePath": "${COMMON_ROOT}/resources/templates/githubSdkReleaseNoteSummary.md", + "readmeDevelopmentEpiloguePath": "${COMMON_ROOT}/resources/templates/readmeDevelopmentEpilogue.md", "debugConfig": false, "enableLoggerColor": false, "packageName": "PureCloudPlatformClientV2", diff --git a/resources/sdk/webmessagingjava/config.json b/resources/sdk/webmessagingjava/config.json index f0018c583..004ef007b 100644 --- a/resources/sdk/webmessagingjava/config.json +++ b/resources/sdk/webmessagingjava/config.json @@ -26,6 +26,7 @@ }, "releaseNoteTemplatePath": "${COMMON_ROOT}/resources/templates/githubSdkReleaseNotes.md", "releaseNoteSummaryTemplatePath": "${COMMON_ROOT}/resources/templates/githubSdkReleaseNoteSummary.md", + "readmeDevelopmentEpiloguePath": "${COMMON_ROOT}/resources/templates/readmeDevelopmentEpilogue.md", "debugConfig": false, "enableLoggerColor": false, "mavenSettingsFilePath": "/var/build/settings.xml", diff --git a/resources/templates/readmeDevelopmentEpilogue.md b/resources/templates/readmeDevelopmentEpilogue.md new file mode 100644 index 000000000..e54b4a5f1 --- /dev/null +++ b/resources/templates/readmeDevelopmentEpilogue.md @@ -0,0 +1,12 @@ + +## Development and Contributing + +⚠️ **Important Notice** ⚠️ + +This repository is automatically generated. Do not submit pull requests or make changes directly to this repository. Instead, please direct all contributions to the [Platform API Client SDK Common Repository](https://github.com/purecloudlabs/platform-client-sdk-common/). + +This is where all changes are managed and propagated to the individual SDK repositories. + +Any pull requests made directly to this repository will be closed. + +Thank you for your interest in contributing!