aws/aws-cdk

(pipelines): Support 'removalPolicy' and 'autoDeleteObjects' in CodePipelineProps`

Open

#36624 opened on Jan 8, 2026

View on GitHub
 (2 comments) (0 reactions) (0 assignees)TypeScript (10,710 stars) (3,530 forks)batch import
@aws-cdk/pipelineseffort/mediumfeature-requestgood first issuep2

Description

Describe the feature

Currently, the pipelines.CodePipeline L3 construct abstracts the creation of the S3 artifact bucket. By default, this bucket is created with a RemovalPolicy.RETAIN policy.

While it is possible to configure this by manually creating a bucket and passing it into the artifactBucket property, this adds significant boilerplate for a common use case—specifically in Dev or Ephemeral environments where users want a full "clean-up" upon running cdk destroy.

Use Case

When creating short-lived feature-branch pipelines or development stacks, users want to ensure that cdk destroy removes all resources. Currently, the artifact bucket stays behind, requiring manual deletion or the following boilerplate:

// Current boilerplate required for a simple cleanup
const pipeline = new CodePipeline(this, 'Pipeline', {
  synth: new ShellStep('Synth', { ... }),
  artifactBucket: new s3.Bucket(this, 'ArtifactBucket', {
    removalPolicy: RemovalPolicy.DESTROY,
    autoDeleteObjects: true,
  }),
});

Proposed Solution

Add optional properties to CodePipelineProps that allow direct configuration of the internal artifact bucket's lifecycle behavior.

Proposed API:

const pipeline = new CodePipeline(this, 'Pipeline', {
  synth: new ShellStep('Synth', { ... }),
  // New simplified props
  artifactBucketRemovalPolicy: RemovalPolicy.DESTROY,
  artifactBucketAutoDeleteObjects: true,
});

Other Information

This would bring CodePipeline in line with other L3/L2 constructs that prioritize ease of lifecycle management.

Acknowledgements

  • I may be able to implement this feature request
  • This feature might incur a breaking change

AWS CDK Library version (aws-cdk-lib)

2.227.0

AWS CDK CLI version

2.1029.3

Environment details (OS name and version, etc.)

Mac Sequoia 15.7.2

Contributor guide