diff --git a/cdk-infra/lib/constructs/worker/worker-env-construct.ts b/cdk-infra/lib/constructs/worker/worker-env-construct.ts index d9f2fbbdb0..f1d27ee073 100644 --- a/cdk-infra/lib/constructs/worker/worker-env-construct.ts +++ b/cdk-infra/lib/constructs/worker/worker-env-construct.ts @@ -36,6 +36,9 @@ export class WorkerEnvConstruct extends Construct { `/docs/worker_pool/preview_webhook/snooty_gatsby_cloud_test/data_source` ); + // front end feature flag for chatbot UI + const gatsbyUseChatbot = StringParameter.valueFromLookup(this, `${ssmPrefix}/flag/use_chatbot`); + const githubBotUsername = StringParameter.valueFromLookup(this, `${ssmPrefix}/github/bot/username`); const npmEmail = StringParameter.valueFromLookup(this, `${ssmPrefix}/npm/email`); @@ -80,6 +83,7 @@ export class WorkerEnvConstruct extends Construct { USE_CUSTOM_BUCKETS: `${getUseCustomBuckets()}`, FEATURE_NAME: `${getFeatureName()}`, GATSBY_TEST_SEARCH_UI: 'false', + GATSBY_SHOW_CHATBOT: gatsbyUseChatbot, }; } } diff --git a/config/custom-environment-variables.json b/config/custom-environment-variables.json index edd5c24346..011a147c72 100644 --- a/config/custom-environment-variables.json +++ b/config/custom-environment-variables.json @@ -24,6 +24,7 @@ "previewBuildEnabled": "PREVIEW_BUILD_ENABLED", "featureFlagUpdatePages": "FEATURE_FLAG_UPDATE_PAGES", "featureFlagSearchUI": "GATSBY_TEST_SEARCH_UI", + "gatsbyUseChatbot": "GATSBY_SHOW_CHATBOT", "repoBranchesCollection": "REPO_BRANCHES_COL_NAME", "repo_dir": "repos", "jobId": "jobId", diff --git a/config/default.json b/config/default.json index dec339ac1e..4f88c8feb2 100644 --- a/config/default.json +++ b/config/default.json @@ -32,6 +32,7 @@ "previewBuildEnabled": "false", "featureFlagUpdatePages": "false", "featureFlagSearchUI": "false", + "gatsbyUseChatbot": "false", "parallel": { "enabled": true, "stg": { diff --git a/infrastructure/ecs-main/ecs_service.yml b/infrastructure/ecs-main/ecs_service.yml index 4d8d63f198..f4b09982c4 100644 --- a/infrastructure/ecs-main/ecs_service.yml +++ b/infrastructure/ecs-main/ecs_service.yml @@ -62,6 +62,8 @@ Resources: Value: ${self:custom.featureFlagUpdatePages} - Name: GATSBY_TEST_SEARCH_UI Value: ${self:custom.featureFlagSearchUI} + - Name: GATSBY_SHOW_CHATBOT + Value: ${self:custom.gatsbyUseChatbot} - Name: FASTLY_MAIN_TOKEN Value: ${self:custom.fastlyMainToken} - Name: FASTLY_MAIN_SERVICE_ID diff --git a/infrastructure/ecs-main/serverless.yml b/infrastructure/ecs-main/serverless.yml index 0de1eb9411..e06ca9a2cb 100644 --- a/infrastructure/ecs-main/serverless.yml +++ b/infrastructure/ecs-main/serverless.yml @@ -117,6 +117,7 @@ custom: featureFlagUpdatePages: ${ssm:/env/${self:provider.stage}/docs/worker_pool/flag/update_pages} featureFlagSearchUI: ${ssm:/env/${self:provider.stage}/docs/worker_pool/flag/search_ui} gatsbyTestEmbedVersions: ${ssm:/env/${self:provider.stage}/docs/worker_pool/flag/embedded_versions} + gatsbyUseChatbot: ${ssm:/env/${self:provider.stage}/docs/worker_pool/flag/use_chatbot} fastlyMainToken: ${ssm:/env/${self:provider.stage}/docs/worker_pool/fastly/docs/main/token} fastlyMainServiceId: ${ssm:/env/${self:provider.stage}/docs/worker_pool/fastly/docs/main/service_id} fastlyCloudManagerToken: ${ssm:/env/${self:provider.stage}/docs/worker_pool/fastly/docs/cloudmanager/token} diff --git a/src/job/jobHandler.ts b/src/job/jobHandler.ts index 357bd2c271..baefa3b83d 100644 --- a/src/job/jobHandler.ts +++ b/src/job/jobHandler.ts @@ -369,6 +369,7 @@ export abstract class JobHandler { GATSBY_BASE_URL: this._config.get('gatsbyBaseUrl'), PREVIEW_BUILD_ENABLED: this._config.get('previewBuildEnabled'), GATSBY_TEST_SEARCH_UI: this._config.get('featureFlagSearchUI'), + GATSBY_SHOW_CHATBOT: this._config.get('gatsbyUseChatbot'), }; for (const [envName, envValue] of Object.entries(snootyFrontEndVars)) { diff --git a/tests/data/data.ts b/tests/data/data.ts index fafca623a9..d403e8cad9 100644 --- a/tests/data/data.ts +++ b/tests/data/data.ts @@ -175,7 +175,7 @@ export class TestDataProvider { } static getEnvVarsWithPathPrefixWithFlags(job: Job): string { - return `GATSBY_PARSER_USER=TestUser\nGATSBY_PARSER_BRANCH=${job.payload.branchName}\nPATH_PREFIX=${job.payload.pathPrefix}\nGATSBY_BASE_URL=test\nPREVIEW_BUILD_ENABLED=false\nGATSBY_TEST_SEARCH_UI=false\n`; + return `GATSBY_PARSER_USER=TestUser\nGATSBY_PARSER_BRANCH=${job.payload.branchName}\nPATH_PREFIX=${job.payload.pathPrefix}\nGATSBY_BASE_URL=test\nPREVIEW_BUILD_ENABLED=false\nGATSBY_TEST_SEARCH_UI=false\nGATSBY_SHOW_CHATBOT=false\n`; } static getPathPrefixCases(): Array { diff --git a/tests/unit/job/productionJobHandler.test.ts b/tests/unit/job/productionJobHandler.test.ts index 1871092864..00e5f46007 100644 --- a/tests/unit/job/productionJobHandler.test.ts +++ b/tests/unit/job/productionJobHandler.test.ts @@ -247,7 +247,7 @@ describe('ProductionJobHandler Tests', () => { expect(jobHandlerTestHelper.fileSystemServices.writeToFile).toBeCalledWith( `repos/${jobHandlerTestHelper.job.payload.repoName}/.env.production`, - `GATSBY_PARSER_USER=TestUser\nGATSBY_PARSER_BRANCH=${jobHandlerTestHelper.job.payload.branchName}\nPATH_PREFIX=/\nGATSBY_BASE_URL=test\nPREVIEW_BUILD_ENABLED=false\nGATSBY_TEST_SEARCH_UI=false\n`, + `GATSBY_PARSER_USER=TestUser\nGATSBY_PARSER_BRANCH=${jobHandlerTestHelper.job.payload.branchName}\nPATH_PREFIX=/\nGATSBY_BASE_URL=test\nPREVIEW_BUILD_ENABLED=false\nGATSBY_TEST_SEARCH_UI=false\nGATSBY_SHOW_CHATBOT=false\n`, { encoding: 'utf8', flag: 'w' } ); }); diff --git a/tests/utils/jobHandlerTestHelper.ts b/tests/utils/jobHandlerTestHelper.ts index ea24e8a1da..9d9e871e96 100644 --- a/tests/utils/jobHandlerTestHelper.ts +++ b/tests/utils/jobHandlerTestHelper.ts @@ -148,6 +148,7 @@ export class JobHandlerTestHelper { this.config.get.calledWith('gatsbyBaseUrl').mockReturnValue('test'); this.config.get.calledWith('previewBuildEnabled').mockReturnValue('false'); this.config.get.calledWith('featureFlagSearchUI').mockReturnValue('false'); + this.config.get.calledWith('gatsbyUseChatbot').mockReturnValue('false'); this.repoConnector.checkCommits .calledWith(this.job) .mockReturnValue(TestDataProvider.getCommitCheckValidResponse(this.job));