-
Notifications
You must be signed in to change notification settings - Fork 4.5k
(pipelines): Support 'removalPolicy' and 'autoDeleteObjects' in CodePipelineProps` #36624
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