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: Developer Preview of CDK Pipelines #8868

Merged
merged 12 commits into from
Jul 8, 2020
Merged

Conversation

rix0rrr
Copy link
Contributor

@rix0rrr rix0rrr commented Jul 2, 2020

Adds an initial, Developer Preview version of CDK Pipelines, a
higher-level construct library to make it easy to set up CI/CD
pipelines for CDK apps.

Resolves aws/aws-cdk-rfcs#49.


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

Adds an initial, Developer Preview version of CDK Pipelines, a
higher-level construct library to make it easy to set up CI/CD
pipelines for CDK apps.

Resolves aws/aws-cdk-rfcs#49.
@rix0rrr rix0rrr added the pr/do-not-merge This PR should not be merged at this time. label Jul 2, 2020
@rix0rrr rix0rrr requested a review from a team July 2, 2020 13:54
@mergify mergify bot added the contribution/core This is a PR that came from AWS. label Jul 2, 2020
Copy link
Contributor

@eladb eladb left a comment

Choose a reason for hiding this comment

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

Initial comments on readme

This library requires exactly CDK version `1.45.0`. The rest of your application must
use the same version.

It uses prerelease features of the CDK framework, which can be enabled by adding the
Copy link
Contributor

Choose a reason for hiding this comment

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

Reiterating my comment from the previous PR: can we add a CLI switch that will enable this and the bootstrap v2 in a less cumbersome way?

packages/@aws-cdk/pipelines/README.md Show resolved Hide resolved
packages/@aws-cdk/pipelines/README.md Outdated Show resolved Hide resolved
packages/@aws-cdk/pipelines/README.md Outdated Show resolved Hide resolved
packages/@aws-cdk/pipelines/README.md Outdated Show resolved Hide resolved
packages/@aws-cdk/pipelines/README.md Show resolved Hide resolved
packages/@aws-cdk/pipelines/README.md Outdated Show resolved Hide resolved
packages/@aws-cdk/pipelines/README.md Show resolved Hide resolved
packages/@aws-cdk/pipelines/README.md Show resolved Hide resolved
packages/@aws-cdk/pipelines/README.md Show resolved Hide resolved
@rix0rrr rix0rrr added pr/do-not-merge This PR should not be merged at this time. and removed pr/do-not-merge This PR should not be merged at this time. labels Jul 7, 2020
@rix0rrr rix0rrr added pr/do-not-merge This PR should not be merged at this time. and removed pr/do-not-merge This PR should not be merged at this time. labels Jul 8, 2020
@mergify
Copy link
Contributor

mergify bot commented Jul 8, 2020

Thank you for contributing! Your pull request will be updated from master and then merged automatically (do not update manually, and be sure to allow changes to be pushed to your fork).

@aws-cdk-automation
Copy link
Collaborator

AWS CodeBuild CI Report

  • CodeBuild project: AutoBuildProject6AEA49D1-qxepHUsryhcu
  • Commit ID: ac15d93
  • Result: SUCCEEDED
  • Build Logs (available for 30 days)

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

@mergify
Copy link
Contributor

mergify bot commented Jul 8, 2020

Thank you for contributing! Your pull request will be updated from master and then merged automatically (do not update manually, and be sure to allow changes to be pushed to your fork).

@mergify mergify bot merged commit d2609bd into master Jul 8, 2020
@mergify mergify bot deleted the huijbers/cdk-pipelines branch July 8, 2020 10:28
@polothy
Copy link
Contributor

polothy commented Jul 8, 2020

Is it possible to use this feature where the CDK Application lives in one git repository, but its Pipeline lives in another git repository? Sort of like a pipeline factory, make pipelines for various projects.

@eladb
Copy link
Contributor

eladb commented Jul 9, 2020

Is it possible to use this feature where the CDK Application lives in one git repository, but its Pipeline lives in another git repository? Sort of like a pipeline factory, make pipelines for various projects.

My recommendation would be to define your pipeline factory as a construct library and publish it. Then all apps can import and use.

@ahammond
Copy link
Contributor

@polothy do you mean having two cdk applications in two separate repos, one which deploys the service and another which deploys the pipeline? Having common code abstracted to a shared library makes perfect sense, but seem orthogonal to this question.

public static standardYarnSynth(options: StandardYarnSynthOptions) {
return new SimpleSynthAction({
...options,
installCommand: options.synthCommand ?? 'yarn install --frozen-lockfile',

Choose a reason for hiding this comment

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

installCommand command is not overridable, should be as follows... as this is passing options.synthCommand to installCommand

installCommand: options.installCommand ?? 'yarn install --frozen-lockfile',

Copy link
Contributor

Choose a reason for hiding this comment

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

@JeremyJonas Can you please raise an issue about this? Closed PRs are not ideal for tracking :-)

@polothy
Copy link
Contributor

polothy commented Jul 21, 2020

do you mean having two cdk applications in two separate repos, one which deploys the service and another which deploys the pipeline?

Yes, that's exactly right.

My recommendation would be to define your pipeline factory as a construct library and publish it. Then all apps can import and use.

That's what I saw as well, just wanted to confirm. So, I wouldn't be able to use the new pipeline stuff, but I would like to extract the cdk-assets work so we can provision a pipeline that can publish all the assets for the project. Having trouble finding the docs on how I would do that. In addition, the new bootstrapping seems to share a deployment role (defaults to admin permissions), is there a way to swap in other CFN deployment roles? The S3 bucket decrypt part has me worried, but maybe CFN runs as root? So, it could decrypt assets in S3?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
contribution/core This is a PR that came from AWS.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

CI/CD for CDK apps
8 participants