Skip to content

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

@kinetik06

Description

@kinetik06

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    @aws-cdk/pipelinesCDK Pipelines libraryeffort/mediumMedium work item – several days of effortfeature-requestA feature should be added or improved.good first issueRelated to contributions. See CONTRIBUTING.mdp2

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions