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

fix(synthetics): synth-time failure for canary assets in nested stages #27167

Merged
merged 2 commits into from
Sep 18, 2023

Conversation

kaizencc
Copy link
Contributor

@kaizencc kaizencc commented Sep 15, 2023

Fixes #27089.

Canaries inside stages would fail at synth time after #26291 was introduced. This was due to a misunderstanding of assetOutdir. It turns out that this.asset.assetPath is a relative path of Stage.of(scope).outdir, not of Stage.of(scope).assetOutdir. These two out directories would be equivalent at the root level, but if there were nested stages, assetOutdir would equal ../${outdir}.

This diagram may help:

CLOUD ASSEMBLY ROOT
  +-- asset.12345abcdef/
  +-- assembly-Stage
    +-- MyStack.template.json
    +-- MyStack.assets.json <- will contain { "path": "../asset.12345abcdef" }

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

@aws-cdk-automation aws-cdk-automation requested a review from a team September 15, 2023 19:53
@github-actions github-actions bot added bug This issue is a bug. effort/small Small work item – less than a day of effort p1 labels Sep 15, 2023
@kaizencc kaizencc added pr-linter/exempt-integ-test The PR linter will not require integ test changes and removed bug This issue is a bug. p1 effort/small Small work item – less than a day of effort labels Sep 15, 2023
@mergify mergify bot added the contribution/core This is a PR that came from AWS. label Sep 15, 2023
@kaizencc kaizencc added the bug This issue is a bug. label Sep 15, 2023
@github-actions github-actions bot added effort/small Small work item – less than a day of effort p1 labels Sep 15, 2023
@aws-cdk-automation
Copy link
Collaborator

AWS CodeBuild CI Report

  • CodeBuild project: AutoBuildv2Project1C6BFA3F-wQm2hXv2jqQv
  • Commit ID: a82a81e
  • Result: SUCCEEDED
  • Build Logs (available for 30 days)

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

@aws-cdk-automation aws-cdk-automation added the pr/needs-maintainer-review This PR needs a review from a Core Team Member label Sep 15, 2023
@mergify
Copy link
Contributor

mergify bot commented Sep 18, 2023

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).

@mergify mergify bot merged commit 7a04a5a into main Sep 18, 2023
19 checks passed
@mergify mergify bot deleted the conroy/fixsynth branch September 18, 2023 09:32
@aws-cdk-automation aws-cdk-automation removed the pr/needs-maintainer-review This PR needs a review from a Core Team Member label Sep 18, 2023
HBobertz pushed a commit that referenced this pull request Sep 18, 2023
#27167)

Fixes #27089.

Canaries inside stages would fail at synth time after #26291 was introduced. This was due to a misunderstanding of `assetOutdir`. It turns out that `this.asset.assetPath` is a relative path of `Stage.of(scope).outdir`, not of `Stage.of(scope).assetOutdir`. These two out directories would be equivalent at the root level, but if there were nested stages, `assetOutdir` would equal `../${outdir}`.

This diagram may help:

```
CLOUD ASSEMBLY ROOT
  +-- asset.12345abcdef/
  +-- assembly-Stage
    +-- MyStack.template.json
    +-- MyStack.assets.json <- will contain { "path": "../asset.12345abcdef" }
```


----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug This issue is a bug. contribution/core This is a PR that came from AWS. effort/small Small work item – less than a day of effort p1 pr-linter/exempt-integ-test The PR linter will not require integ test changes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

synthetics-alpha: Asset not found when Canary belongs to Stage
3 participants