-
Notifications
You must be signed in to change notification settings - Fork 3.9k
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
fix(core): CustomResourceProvider assets are staged in node_modules #20953
Conversation
// verify we have an index file there | ||
if (!fs.existsSync(path.join(props.codeDirectory, 'index.js'))) { | ||
throw new Error(`cannot find ${props.codeDirectory}/index.js`); | ||
} | ||
|
||
const stagingDirectory = fs.mkdtempSync(path.join(os.tmpdir(), 'cdk-custom-resource')); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
using import { FileSystem } from '../fs';
const stagingDirectory = fs.mkdtempSync(path.join(os.tmpdir(), 'cdk-custom-resource')); | |
const stagingDirectory = FileSystem.mkdtemp('cdk-custom-resource'); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It has the advantage of using the real temp dir even when it is a symlink like on OSx
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done. Thanks!
// verify we have an index file there | ||
if (!fs.existsSync(path.join(props.codeDirectory, 'index.js'))) { | ||
throw new Error(`cannot find ${props.codeDirectory}/index.js`); | ||
} | ||
|
||
const stagingDirectory = FileSystem.mkdtemp('cdk-custom-resource'); | ||
fs.copyFileSync(path.join(props.codeDirectory, 'index.js'), path.join(stagingDirectory, 'index.js')); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Previously we were copying the ENTRYPOINT_FILENAME
into the codeDirectory
. Now we are copy the ENTRYPOINT_FILENAME
and just the index.js
file from the codeDirectory
into a tmp directory. What happens if some custom resources have more than just an index.js
file that needs to be copied?
For example https://github.com/aws/aws-cdk/tree/main/packages/%40aws-cdk/aws-iam/lib/oidc-provider
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You're absolutely right! Done.
Thank you for contributing! Your pull request will be updated from main and then merged automatically (do not update manually, and be sure to allow changes to be pushed to your fork). |
AWS CodeBuild CI Report
Powered by github-codebuild-logs, available on the AWS Serverless Application Repository |
Thank you for contributing! Your pull request will be updated from main and then merged automatically (do not update manually, and be sure to allow changes to be pushed to your fork). |
…ws#20953) Instead of using the source code directory as a staging directory (which, from the point of view of the consumer, is inside the `node_modules` directory), create a temporary directory for staging. Fixes aws#17460. ---- ### All Submissions: * [x] Have you followed the guidelines in our [Contributing guide?](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md) ### Adding new Unconventional Dependencies: * [ ] This PR adds new unconventional dependencies following the process described [here](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md/#adding-new-unconventional-dependencies) ### New Features * [ ] Have you added the new feature to an [integration test](https://github.com/aws/aws-cdk/blob/main/INTEGRATION_TESTS.md)? * [ ] Did you use `yarn integ` to deploy the infrastructure and generate the snapshot (i.e. `yarn integ` without `--dry-run`)? *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
Instead of using the source code directory as a staging directory (which, from the point of view of the consumer, is inside the
node_modules
directory), create a temporary directory for staging.Fixes #17460.
All Submissions:
Adding new Unconventional Dependencies:
New Features
yarn integ
to deploy the infrastructure and generate the snapshot (i.e.yarn integ
without--dry-run
)?By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license