aws/aws-cdk

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

開放

#36,624 建立於 2026年1月8日

 (2 則留言) (0 個反應) (0 位負責人)TypeScript (3,530 個分叉)batch import
@aws-cdk/pipelineseffort/mediumfeature-requestgood first issuep2

倉庫指標

星標
 (10,710 顆星)
PR 合併指標
 (平均合併 14天 11小時) (30 天內合併 68 個 PR)

描述

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

貢獻者指南