Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(pipelines): display names can be set for assets in a pipeline #24917

Closed
wants to merge 14 commits into from

Conversation

danno-s
Copy link

@danno-s danno-s commented Apr 3, 2023

This change enables users to set display names for assets in their pipelines, to make Asset steps in CodePipeline easier to parse. Instead of having 'FileAssetN' and 'DockerAssetN' actions in these steps, users could have descriptive names for these assets like 'GetProfile' or 'AddToCart'.

For a user, this would consist of using the new displayName properties in the Asset, TarballImageAsset and DockerImageAsset constructs, like so:

new s3_assets.Asset(stack, 'MyNamedFile', {
  path: path.join(__dirname, 'assets'),
  displayName: 'some-name',
});

Implementation of this feature involves following the whole lifecycle of an asset. From the moment of instantiation to the generation of manifests and later parsing these manifests while building the pipeline. To avoid changing method signatures I opted to add a new optional property displayName in the FileSource and DockerImageSource interfaces. This property is passed all the way down to the AssetManifestBuilder, where it's persisted into the file manifest.

This required modifying the schema of the asset manifest. AFAIK, this change can not be implemented without adding information to it. The only possible spot for this display name without changing the schema would be in an asset's key, which normally is a hash and may be used by other methods to detect wether the asset should be reuploaded.

This feature includes changes to the aws-s3-assets and aws-ecr-assets to enable passing of the displayName property to them. Higher level constructs (like NodejsLambda) will require some wiring to pass these same properties lower into the tree to their used 'base types' (Asset, TarballImageAsset and DockerImageAsset). I might include this use case into the PR before finishing the draft.

TODO:

  • Add integration test
  • Change README
  • Add wiring for higher level constructs (aws_lambda_nodejs, aws-lambda-python-alpha and aws-lambda-go-alpha). This might be scope creep, so feedback would be appreciated if you'd rather review this PR as-is and have these implementations in another PR.
  • Add validation for the displayNames in the lower-level Constructs. Right now, spaces in names are replaced with underscores. Not documenting or throwing errors with this would be confusing for users.

Closes #9628.


By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license

Sorry, something went wrong.

@github-actions github-actions bot added beginning-contributor [Pilot] contributed between 0-2 PRs to the CDK effort/medium Medium work item – several days of effort feature-request A feature should be added or improved. p1 labels Apr 3, 2023
@aws-cdk-automation aws-cdk-automation requested a review from a team April 3, 2023 23:53
Copy link
Collaborator

@aws-cdk-automation aws-cdk-automation left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The pull request linter has failed. See the aws-cdk-automation comment below for failure reasons. If you believe this pull request should receive an exemption, please comment and provide a justification.

A comment requesting an exemption should contain the text Exemption Request. Additionally, if clarification is needed add Clarification Request to a comment.

@aws-cdk-automation
Copy link
Collaborator

This PR cannot be merged because it has conflicts. Please resolve them. The PR will be considered stale and closed if it remains in an unmergeable state.

11 similar comments
@aws-cdk-automation
Copy link
Collaborator

This PR cannot be merged because it has conflicts. Please resolve them. The PR will be considered stale and closed if it remains in an unmergeable state.

@aws-cdk-automation
Copy link
Collaborator

This PR cannot be merged because it has conflicts. Please resolve them. The PR will be considered stale and closed if it remains in an unmergeable state.

@aws-cdk-automation
Copy link
Collaborator

This PR cannot be merged because it has conflicts. Please resolve them. The PR will be considered stale and closed if it remains in an unmergeable state.

@aws-cdk-automation
Copy link
Collaborator

This PR cannot be merged because it has conflicts. Please resolve them. The PR will be considered stale and closed if it remains in an unmergeable state.

@aws-cdk-automation
Copy link
Collaborator

This PR cannot be merged because it has conflicts. Please resolve them. The PR will be considered stale and closed if it remains in an unmergeable state.

@aws-cdk-automation
Copy link
Collaborator

This PR cannot be merged because it has conflicts. Please resolve them. The PR will be considered stale and closed if it remains in an unmergeable state.

@aws-cdk-automation
Copy link
Collaborator

This PR cannot be merged because it has conflicts. Please resolve them. The PR will be considered stale and closed if it remains in an unmergeable state.

@aws-cdk-automation
Copy link
Collaborator

This PR cannot be merged because it has conflicts. Please resolve them. The PR will be considered stale and closed if it remains in an unmergeable state.

@aws-cdk-automation
Copy link
Collaborator

This PR cannot be merged because it has conflicts. Please resolve them. The PR will be considered stale and closed if it remains in an unmergeable state.

@aws-cdk-automation
Copy link
Collaborator

This PR cannot be merged because it has conflicts. Please resolve them. The PR will be considered stale and closed if it remains in an unmergeable state.

@aws-cdk-automation
Copy link
Collaborator

This PR cannot be merged because it has conflicts. Please resolve them. The PR will be considered stale and closed if it remains in an unmergeable state.

@aws-cdk-automation
Copy link
Collaborator

This PR cannot be merged because it has conflicts. Please resolve them. The PR will be considered stale and closed if it remains in an unmergeable state.

1 similar comment
@aws-cdk-automation
Copy link
Collaborator

This PR cannot be merged because it has conflicts. Please resolve them. The PR will be considered stale and closed if it remains in an unmergeable state.

@aws-cdk-automation
Copy link
Collaborator

This PR has been in the CHANGES REQUESTED state for 3 weeks, and looks abandoned. To keep this PR from being closed, please continue work on it. If not, it will automatically be closed in a week.

@gitpod-io
Copy link

gitpod-io bot commented Apr 25, 2023

@aws-cdk-automation
Copy link
Collaborator

AWS CodeBuild CI Report

  • CodeBuild project: AutoBuildv2Project1C6BFA3F-wQm2hXv2jqQv
  • Commit ID: 738a568
  • Result: FAILED
  • Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

@aws-cdk-automation
Copy link
Collaborator

This PR has been deemed to be abandoned, and will be automatically closed. Please create a new PR for these changes if you think this decision has been made in error.

@aws-cdk-automation aws-cdk-automation added the closed-for-staleness This issue was automatically closed because it hadn't received any attention in a while. label May 2, 2023
@aws-cdk-automation
Copy link
Collaborator

The pull request linter fails with the following errors:

❌ Features must contain a change to an integration test file and the resulting snapshot.

PRs must pass status checks before we can provide a meaningful review.

If you would like to request an exemption from the status checks or clarification on feedback, please leave a comment on this PR containing Exemption Request and/or Clarification Request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
beginning-contributor [Pilot] contributed between 0-2 PRs to the CDK closed-for-staleness This issue was automatically closed because it hadn't received any attention in a while. effort/medium Medium work item – several days of effort feature-request A feature should be added or improved. p1
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[cdk-pipelines/core] Give assets a display name
2 participants