From 9f4e8de1e8d9a5f89b5298f108fd1828d18a73b2 Mon Sep 17 00:00:00 2001 From: watany <76135106+watany-dev@users.noreply.github.com> Date: Wed, 10 Jan 2024 05:12:14 +0000 Subject: [PATCH] chore(codebuild): supports a X-Large Linux compute type --- .../aws-codebuild/lib/compute-type.ts | 1 + .../aws-cdk-lib/aws-codebuild/lib/project.ts | 3 ++- .../aws-codebuild/test/codebuild.test.ts | 18 ++++++++++++++++++ 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/packages/aws-cdk-lib/aws-codebuild/lib/compute-type.ts b/packages/aws-cdk-lib/aws-codebuild/lib/compute-type.ts index 923b70126056f..63cce6d3f384c 100644 --- a/packages/aws-cdk-lib/aws-codebuild/lib/compute-type.ts +++ b/packages/aws-cdk-lib/aws-codebuild/lib/compute-type.ts @@ -5,6 +5,7 @@ export enum ComputeType { SMALL = 'BUILD_GENERAL1_SMALL', MEDIUM = 'BUILD_GENERAL1_MEDIUM', LARGE = 'BUILD_GENERAL1_LARGE', + X_LARGE = 'BUILD_GENERAL1_XLARGE', X2_LARGE = 'BUILD_GENERAL1_2XLARGE', LAMBDA_1GB = 'BUILD_LAMBDA_1GB', LAMBDA_2GB = 'BUILD_LAMBDA_2GB', diff --git a/packages/aws-cdk-lib/aws-codebuild/lib/project.ts b/packages/aws-cdk-lib/aws-codebuild/lib/project.ts index fec076b9dd0ed..1252969223e9f 100644 --- a/packages/aws-cdk-lib/aws-codebuild/lib/project.ts +++ b/packages/aws-cdk-lib/aws-codebuild/lib/project.ts @@ -2117,7 +2117,8 @@ export class WindowsBuildImage implements IBuildImage { errors.push('Windows images do not support Lambda compute types'); } - if (buildEnvironment.computeType === ComputeType.SMALL || buildEnvironment.computeType === ComputeType.X2_LARGE) { + const unsupportedComputeTypes = [ComputeType.SMALL, ComputeType.X_LARGE, ComputeType.X2_LARGE]; + if (buildEnvironment.computeType !== undefined && unsupportedComputeTypes.includes(buildEnvironment.computeType)) { errors.push(`Windows images do not support the '${buildEnvironment.computeType}' compute type`); } return errors; diff --git a/packages/aws-cdk-lib/aws-codebuild/test/codebuild.test.ts b/packages/aws-cdk-lib/aws-codebuild/test/codebuild.test.ts index 0b6f8af8556dc..7a09af0d6b5b0 100644 --- a/packages/aws-cdk-lib/aws-codebuild/test/codebuild.test.ts +++ b/packages/aws-cdk-lib/aws-codebuild/test/codebuild.test.ts @@ -1617,6 +1617,24 @@ test('using ComputeType.Small with a Windows image fails validation', () => { }).toThrow(/Windows images do not support the 'BUILD_GENERAL1_SMALL' compute type/); }); +test('using ComputeType.XLarge with a Windows image fails validation', () => { + const stack = new cdk.Stack(); + const invalidEnvironment: codebuild.BuildEnvironment = { + buildImage: codebuild.WindowsBuildImage.WIN_SERVER_CORE_2019_BASE, + computeType: codebuild.ComputeType.X_LARGE, + }; + + expect(() => { + new codebuild.Project(stack, 'MyProject', { + source: codebuild.Source.s3({ + bucket: new s3.Bucket(stack, 'MyBucket'), + path: 'path', + }), + environment: invalidEnvironment, + }); + }).toThrow(/Windows images do not support the 'BUILD_GENERAL1_XLARGE' compute type/); +}); + test('using ComputeType.X2Large with a Windows image fails validation', () => { const stack = new cdk.Stack(); const invalidEnvironment: codebuild.BuildEnvironment = {