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
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
Describe the feature
Currently, the
pipelines.CodePipelineL3 construct abstracts the creation of the S3 artifact bucket. By default, this bucket is created with aRemovalPolicy.RETAINpolicy.While it is possible to configure this by manually creating a bucket and passing it into the
artifactBucketproperty, this adds significant boilerplate for a common use case—specifically in Dev or Ephemeral environments where users want a full "clean-up" upon runningcdk destroy.Use Case
When creating short-lived feature-branch pipelines or development stacks, users want to ensure that
cdk destroyremoves all resources. Currently, the artifact bucket stays behind, requiring manual deletion or the following boilerplate:Proposed Solution
Add optional properties to
CodePipelinePropsthat allow direct configuration of the internal artifact bucket's lifecycle behavior.Proposed API:
Other Information
This would bring
CodePipelinein line with other L3/L2 constructs that prioritize ease of lifecycle management.Acknowledgements
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