@aws-cdk-testing/cli-integ 3.3.0 → 3.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cli/run-suite.js +6 -1
- package/lib/cli/run-suite.ts +6 -0
- package/lib/integ-test.js +3 -13
- package/lib/integ-test.ts +2 -13
- package/lib/with-cli-lib.js +2 -1
- package/lib/with-cli-lib.ts +1 -0
- package/package.json +4 -4
- package/resources/integ.jest.config.js +2 -3
- package/tests/cli-integ-tests/cdk---exclusively-selects-only-selected-stack.integtest.js +24 -0
- package/tests/cli-integ-tests/cdk---exclusively-selects-only-selected-stack.integtest.ts +29 -0
- package/tests/cli-integ-tests/cdk-assets/cdk-assets-uses-profile.integtest.js +80 -0
- package/tests/cli-integ-tests/cdk-assets/cdk-assets-uses-profile.integtest.ts +92 -0
- package/tests/cli-integ-tests/cdk-automatic-ordering-with-concurrency.integtest.js +11 -0
- package/tests/cli-integ-tests/cdk-automatic-ordering-with-concurrency.integtest.ts +15 -0
- package/tests/cli-integ-tests/cdk-automatic-ordering.integtest.js +11 -0
- package/tests/cli-integ-tests/cdk-automatic-ordering.integtest.ts +15 -0
- package/tests/cli-integ-tests/cdk-automatic-rollback-if-paused-and---no-rollback-is-removed-from-flags.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-automatic-rollback-if-paused-and---no-rollback-is-removed-from-flags.integtest.js +35 -0
- package/tests/cli-integ-tests/cdk-automatic-rollback-if-paused-and---no-rollback-is-removed-from-flags.integtest.ts +40 -0
- package/tests/cli-integ-tests/cdk-automatic-rollback-if-paused-and-change-contains-a-replacement.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-automatic-rollback-if-paused-and-change-contains-a-replacement.integtest.js +35 -0
- package/tests/cli-integ-tests/cdk-automatic-rollback-if-paused-and-change-contains-a-replacement.integtest.ts +40 -0
- package/tests/cli-integ-tests/cdk-automatic-rollback-if-replacement-and---no-rollback-is-removed-from-flags.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-automatic-rollback-if-replacement-and---no-rollback-is-removed-from-flags.integtest.js +26 -0
- package/tests/cli-integ-tests/cdk-automatic-rollback-if-replacement-and---no-rollback-is-removed-from-flags.integtest.ts +29 -0
- package/tests/cli-integ-tests/cdk-bootstrap-a-customized-template-vendor-will-not-overwrite-the-default-template.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-bootstrap-a-customized-template-vendor-will-not-overwrite-the-default-template.integtest.js +39 -0
- package/tests/cli-integ-tests/cdk-bootstrap-a-customized-template-vendor-will-not-overwrite-the-default-template.integtest.ts +42 -0
- package/tests/cli-integ-tests/cdk-bootstrap-add-tags.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-bootstrap-add-tags.integtest.js +25 -0
- package/tests/cli-integ-tests/cdk-bootstrap-add-tags.integtest.ts +26 -0
- package/tests/cli-integ-tests/cdk-bootstrap-can-add-tags-then-update-tags-during-re-bootstrap.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-bootstrap-can-add-tags-then-update-tags-during-re-bootstrap.integtest.js +27 -0
- package/tests/cli-integ-tests/cdk-bootstrap-can-add-tags-then-update-tags-during-re-bootstrap.integtest.ts +28 -0
- package/tests/cli-integ-tests/cdk-bootstrap-can-and-deploy-if-omitting-execution-policies.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-bootstrap-can-and-deploy-if-omitting-execution-policies.integtest.js +19 -0
- package/tests/cli-integ-tests/cdk-bootstrap-can-and-deploy-if-omitting-execution-policies.integtest.ts +21 -0
- package/tests/cli-integ-tests/cdk-bootstrap-can-bootstrap-without-execution.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-bootstrap-can-bootstrap-without-execution.integtest.js +18 -0
- package/tests/cli-integ-tests/cdk-bootstrap-can-bootstrap-without-execution.integtest.ts +22 -0
- package/tests/cli-integ-tests/cdk-bootstrap-can-create-a-legacy-bootstrap-stack-with---public-access-block-configuration-false.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-bootstrap-can-create-a-legacy-bootstrap-stack-with---public-access-block-configuration-false.integtest.js +20 -0
- package/tests/cli-integ-tests/cdk-bootstrap-can-create-a-legacy-bootstrap-stack-with---public-access-block-configuration-false.integtest.ts +21 -0
- package/tests/cli-integ-tests/cdk-bootstrap-can-create-multiple-legacy-bootstrap-stacks.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-bootstrap-can-create-multiple-legacy-bootstrap-stacks.integtest.js +26 -0
- package/tests/cli-integ-tests/cdk-bootstrap-can-create-multiple-legacy-bootstrap-stacks.integtest.ts +27 -0
- package/tests/cli-integ-tests/cdk-bootstrap-can-deploy-modern-synthesized-stack-even-if-bootstrap-stack-name-is-unknown.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-bootstrap-can-deploy-modern-synthesized-stack-even-if-bootstrap-stack-name-is-unknown.integtest.js +22 -0
- package/tests/cli-integ-tests/cdk-bootstrap-can-deploy-modern-synthesized-stack-even-if-bootstrap-stack-name-is-unknown.integtest.ts +24 -0
- package/tests/cli-integ-tests/cdk-bootstrap-can-deploy-with-session-tags-on-the-deploy.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-bootstrap-can-deploy-with-session-tags-on-the-deploy.integtest.js +23 -0
- package/tests/cli-integ-tests/cdk-bootstrap-can-deploy-with-session-tags-on-the-deploy.integtest.ts +25 -0
- package/tests/cli-integ-tests/cdk-bootstrap-can-deploy-without-execution-role-and-with-session-tags-on-deploy-role.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-bootstrap-can-deploy-without-execution-role-and-with-session-tags-on-deploy-role.integtest.js +20 -0
- package/tests/cli-integ-tests/cdk-bootstrap-can-deploy-without-execution-role-and-with-session-tags-on-deploy-role.integtest.ts +22 -0
- package/tests/cli-integ-tests/cdk-bootstrap-can-dump-the-template.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-bootstrap-can-dump-the-template.integtest.js +29 -0
- package/tests/cli-integ-tests/cdk-bootstrap-can-dump-the-template.integtest.ts +32 -0
- package/tests/cli-integ-tests/cdk-bootstrap-can-remove-custompermissionsboundary.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-bootstrap-can-remove-custompermissionsboundary.integtest.js +61 -0
- package/tests/cli-integ-tests/cdk-bootstrap-can-remove-custompermissionsboundary.integtest.ts +77 -0
- package/tests/cli-integ-tests/cdk-bootstrap-can-remove-trusted-account.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-bootstrap-can-remove-trusted-account.integtest.js +25 -0
- package/tests/cli-integ-tests/cdk-bootstrap-can-remove-trusted-account.integtest.ts +30 -0
- package/tests/cli-integ-tests/cdk-bootstrap-can-use-the-custom-permissions-boundary-(with-slashes)-to-bootstrap.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-bootstrap-can-use-the-custom-permissions-boundary-(with-slashes)-to-bootstrap.integtest.js +14 -0
- package/tests/cli-integ-tests/cdk-bootstrap-can-use-the-custom-permissions-boundary-(with-slashes)-to-bootstrap.integtest.ts +15 -0
- package/tests/cli-integ-tests/cdk-bootstrap-can-use-the-custom-permissions-boundary-to-bootstrap.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-bootstrap-can-use-the-custom-permissions-boundary-to-bootstrap.integtest.js +14 -0
- package/tests/cli-integ-tests/cdk-bootstrap-can-use-the-custom-permissions-boundary-to-bootstrap.integtest.ts +15 -0
- package/tests/cli-integ-tests/cdk-bootstrap-can-use-the-default-permissions-boundary-to-bootstrap.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-bootstrap-can-use-the-default-permissions-boundary-to-bootstrap.integtest.js +14 -0
- package/tests/cli-integ-tests/cdk-bootstrap-can-use-the-default-permissions-boundary-to-bootstrap.integtest.ts +15 -0
- package/tests/cli-integ-tests/cdk-bootstrap-create-ecr-with-tag-immutability-to-set-on.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-bootstrap-create-ecr-with-tag-immutability-to-set-on.integtest.js +27 -0
- package/tests/cli-integ-tests/cdk-bootstrap-create-ecr-with-tag-immutability-to-set-on.integtest.ts +34 -0
- package/tests/cli-integ-tests/cdk-bootstrap-deploy-new-style-synthesis-to-new-style-bootstrap-(with-docker-image).integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-bootstrap-deploy-new-style-synthesis-to-new-style-bootstrap-(with-docker-image).integtest.js +20 -0
- package/tests/cli-integ-tests/cdk-bootstrap-deploy-new-style-synthesis-to-new-style-bootstrap-(with-docker-image).integtest.ts +22 -0
- package/tests/cli-integ-tests/cdk-bootstrap-deploy-new-style-synthesis-to-new-style-bootstrap.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-bootstrap-deploy-new-style-synthesis-to-new-style-bootstrap.integtest.js +20 -0
- package/tests/cli-integ-tests/cdk-bootstrap-deploy-new-style-synthesis-to-new-style-bootstrap.integtest.ts +22 -0
- package/tests/cli-integ-tests/cdk-bootstrap-deploy-old-style-synthesis-to-new-style-bootstrap.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-bootstrap-deploy-old-style-synthesis-to-new-style-bootstrap.integtest.js +19 -0
- package/tests/cli-integ-tests/cdk-bootstrap-deploy-old-style-synthesis-to-new-style-bootstrap.integtest.ts +21 -0
- package/tests/cli-integ-tests/cdk-bootstrap-switch-on-termination-protection.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-bootstrap-switch-on-termination-protection.integtest.js +23 -0
- package/tests/cli-integ-tests/cdk-bootstrap-switch-on-termination-protection.integtest.ts +24 -0
- package/tests/cli-integ-tests/cdk-bootstrap-upgrade-legacy-bootstrap-stack-to-new-bootstrap-stack-while-in-use.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-bootstrap-upgrade-legacy-bootstrap-stack-to-new-bootstrap-stack-while-in-use.integtest.js +42 -0
- package/tests/cli-integ-tests/cdk-bootstrap-upgrade-legacy-bootstrap-stack-to-new-bootstrap-stack-while-in-use.integtest.ts +47 -0
- package/tests/cli-integ-tests/cdk-can-still-load-old-assemblies.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-can-still-load-old-assemblies.integtest.js +49 -0
- package/tests/cli-integ-tests/cdk-can-still-load-old-assemblies.integtest.ts +57 -0
- package/tests/cli-integ-tests/cdk-cdk-diff---fail-on-multiple-stacks-exits-with-error-if-any-of-the-stacks-contains-a-diff.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-cdk-diff---fail-on-multiple-stacks-exits-with-error-if-any-of-the-stacks-contains-a-diff.integtest.js +15 -0
- package/tests/cli-integ-tests/cdk-cdk-diff---fail-on-multiple-stacks-exits-with-error-if-any-of-the-stacks-contains-a-diff.integtest.ts +22 -0
- package/tests/cli-integ-tests/cdk-cdk-diff---fail-with-multiple-stack-exits-with-if-any-of-the-stacks-contains-a-diff.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-cdk-diff---fail-with-multiple-stack-exits-with-if-any-of-the-stacks-contains-a-diff.integtest.js +15 -0
- package/tests/cli-integ-tests/cdk-cdk-diff---fail-with-multiple-stack-exits-with-if-any-of-the-stacks-contains-a-diff.integtest.ts +22 -0
- package/tests/cli-integ-tests/cdk-cdk-diff---quiet-does-not-print-there-were-no-differences-message-for-stacks-which-have-no-differences.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-cdk-diff---quiet-does-not-print-there-were-no-differences-message-for-stacks-which-have-no-differences.integtest.js +14 -0
- package/tests/cli-integ-tests/cdk-cdk-diff---quiet-does-not-print-there-were-no-differences-message-for-stacks-which-have-no-differences.integtest.ts +19 -0
- package/tests/cli-integ-tests/cdk-cdk-diff---security-only---fail-exits-when-security-changes-are-present.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-cdk-diff---security-only---fail-exits-when-security-changes-are-present.integtest.js +9 -0
- package/tests/cli-integ-tests/cdk-cdk-diff---security-only---fail-exits-when-security-changes-are-present.integtest.ts +14 -0
- package/tests/cli-integ-tests/cdk-cdk-diff---security-only---fail-exits-when-security-diff-for-sso-access-control-config.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-cdk-diff---security-only---fail-exits-when-security-diff-for-sso-access-control-config.integtest.js +8 -0
- package/tests/cli-integ-tests/cdk-cdk-diff---security-only---fail-exits-when-security-diff-for-sso-access-control-config.integtest.ts +13 -0
- package/tests/cli-integ-tests/cdk-cdk-diff---security-only---fail-exits-when-security-diff-for-sso-assignment.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-cdk-diff---security-only---fail-exits-when-security-diff-for-sso-assignment.integtest.js +8 -0
- package/tests/cli-integ-tests/cdk-cdk-diff---security-only---fail-exits-when-security-diff-for-sso-assignment.integtest.ts +13 -0
- package/tests/cli-integ-tests/cdk-cdk-diff---security-only---fail-exits-when-security-diff-for-sso-perm-set-with-managed-policy.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-cdk-diff---security-only---fail-exits-when-security-diff-for-sso-perm-set-with-managed-policy.integtest.js +8 -0
- package/tests/cli-integ-tests/cdk-cdk-diff---security-only---fail-exits-when-security-diff-for-sso-perm-set-with-managed-policy.integtest.ts +13 -0
- package/tests/cli-integ-tests/cdk-cdk-diff---security-only---fail-exits-when-security-diff-for-sso-perm-set-without-managed-policy.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-cdk-diff---security-only---fail-exits-when-security-diff-for-sso-perm-set-without-managed-policy.integtest.js +8 -0
- package/tests/cli-integ-tests/cdk-cdk-diff---security-only---fail-exits-when-security-diff-for-sso-perm-set-without-managed-policy.integtest.ts +13 -0
- package/tests/cli-integ-tests/cdk-cdk-diff---security-only-successfully-outputs-sso-access-control-information.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-cdk-diff---security-only-successfully-outputs-sso-access-control-information.integtest.js +30 -0
- package/tests/cli-integ-tests/cdk-cdk-diff---security-only-successfully-outputs-sso-access-control-information.integtest.ts +35 -0
- package/tests/cli-integ-tests/cdk-cdk-diff---security-only-successfully-outputs-sso-assignment-information.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-cdk-diff---security-only-successfully-outputs-sso-assignment-information.integtest.js +28 -0
- package/tests/cli-integ-tests/cdk-cdk-diff---security-only-successfully-outputs-sso-assignment-information.integtest.ts +37 -0
- package/tests/cli-integ-tests/cdk-cdk-diff---security-only-successfully-outputs-sso-permission-set-with-managed-policy-information.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-cdk-diff---security-only-successfully-outputs-sso-permission-set-with-managed-policy-information.integtest.js +27 -0
- package/tests/cli-integ-tests/cdk-cdk-diff---security-only-successfully-outputs-sso-permission-set-with-managed-policy-information.integtest.ts +35 -0
- package/tests/cli-integ-tests/cdk-cdk-diff---security-only-successfully-outputs-sso-permission-set-without-managed-policy-information.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-cdk-diff---security-only-successfully-outputs-sso-permission-set-without-managed-policy-information.integtest.js +30 -0
- package/tests/cli-integ-tests/cdk-cdk-diff---security-only-successfully-outputs-sso-permission-set-without-managed-policy-information.integtest.ts +37 -0
- package/tests/cli-integ-tests/cdk-cdk-diff-doesnt-show-resource-metadata-changes.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-cdk-diff-doesnt-show-resource-metadata-changes.integtest.js +18 -0
- package/tests/cli-integ-tests/cdk-cdk-diff-doesnt-show-resource-metadata-changes.integtest.ts +23 -0
- package/tests/cli-integ-tests/cdk-cdk-diff-shows-resource-metadata-changes-with---no-change-set.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-cdk-diff-shows-resource-metadata-changes-with---no-change-set.integtest.js +18 -0
- package/tests/cli-integ-tests/cdk-cdk-diff-shows-resource-metadata-changes-with---no-change-set.integtest.ts +23 -0
- package/tests/cli-integ-tests/cdk-cdk-diff-with-large-changeset-and-custom-toolkit-stack-name-and-qualifier-does-not-fail.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-cdk-diff-with-large-changeset-and-custom-toolkit-stack-name-and-qualifier-does-not-fail.integtest.js +35 -0
- package/tests/cli-integ-tests/cdk-cdk-diff-with-large-changeset-and-custom-toolkit-stack-name-and-qualifier-does-not-fail.integtest.ts +38 -0
- package/tests/cli-integ-tests/cdk-cdk-diff-with-large-changeset-does-not-fail.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-cdk-diff-with-large-changeset-does-not-fail.integtest.js +23 -0
- package/tests/cli-integ-tests/cdk-cdk-diff-with-large-changeset-does-not-fail.integtest.ts +28 -0
- package/tests/cli-integ-tests/cdk-cdk-diff.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-cdk-diff.integtest.js +13 -0
- package/tests/cli-integ-tests/cdk-cdk-diff.integtest.ts +18 -0
- package/tests/cli-integ-tests/cdk-cdk-ls---show-dependencies---json---long.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-cdk-ls---show-dependencies---json---long.integtest.js +45 -0
- package/tests/cli-integ-tests/cdk-cdk-ls---show-dependencies---json---long.integtest.ts +50 -0
- package/tests/cli-integ-tests/cdk-cdk-ls---show-dependencies---json.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-cdk-ls---show-dependencies---json.integtest.js +75 -0
- package/tests/cli-integ-tests/cdk-cdk-ls---show-dependencies---json.integtest.ts +95 -0
- package/tests/cli-integ-tests/cdk-cdk-ls.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-cdk-ls.integtest.js +32 -0
- package/tests/cli-integ-tests/cdk-cdk-ls.integtest.ts +36 -0
- package/tests/cli-integ-tests/cdk-cdk-notices-are-displayed-correctly.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-cdk-notices-are-displayed-correctly.integtest.js +38 -0
- package/tests/cli-integ-tests/cdk-cdk-notices-are-displayed-correctly.integtest.ts +42 -0
- package/tests/cli-integ-tests/cdk-cdk-notices-with---unacknowledged.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-cdk-notices-with---unacknowledged.integtest.js +11 -0
- package/tests/cli-integ-tests/cdk-cdk-notices-with---unacknowledged.integtest.ts +14 -0
- package/tests/cli-integ-tests/cdk-cdk-synth-add-the-metadata-properties-expected-by-sam.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-cdk-synth-add-the-metadata-properties-expected-by-sam.integtest.js +111 -0
- package/tests/cli-integ-tests/cdk-cdk-synth-add-the-metadata-properties-expected-by-sam.integtest.ts +126 -0
- package/tests/cli-integ-tests/cdk-cdk-synth-bundled-functions-as-expected.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-cdk-synth-bundled-functions-as-expected.integtest.js +74 -0
- package/tests/cli-integ-tests/cdk-cdk-synth-bundled-functions-as-expected.integtest.ts +80 -0
- package/tests/cli-integ-tests/cdk-cdk-synth.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-cdk-synth.integtest.js +40 -0
- package/tests/cli-integ-tests/cdk-cdk-synth.integtest.ts +53 -0
- package/tests/cli-integ-tests/cdk-ci-output-to-stderr.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-ci-output-to-stderr.integtest.js +16 -0
- package/tests/cli-integ-tests/cdk-ci-output-to-stderr.integtest.ts +19 -0
- package/tests/cli-integ-tests/cdk-ci-true-output-to-stdout.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-ci-true-output-to-stdout.integtest.js +24 -0
- package/tests/cli-integ-tests/cdk-ci-true-output-to-stdout.integtest.ts +28 -0
- package/tests/cli-integ-tests/cdk-construct-with-builtin-lambda-function.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-construct-with-builtin-lambda-function.integtest.js +11 -0
- package/tests/cli-integ-tests/cdk-construct-with-builtin-lambda-function.integtest.ts +14 -0
- package/tests/cli-integ-tests/cdk-context-in-stage-propagates-to-top.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-context-in-stage-propagates-to-top.integtest.js +15 -0
- package/tests/cli-integ-tests/cdk-context-in-stage-propagates-to-top.integtest.ts +20 -0
- package/tests/cli-integ-tests/cdk-context-setting.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-context-setting.integtest.js +26 -0
- package/tests/cli-integ-tests/cdk-context-setting.integtest.ts +33 -0
- package/tests/cli-integ-tests/cdk-deploy---method-direct.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-deploy---method-direct.integtest.js +18 -0
- package/tests/cli-integ-tests/cdk-deploy---method-direct.integtest.ts +23 -0
- package/tests/cli-integ-tests/cdk-deploy-all-concurrently.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-deploy-all-concurrently.integtest.js +13 -0
- package/tests/cli-integ-tests/cdk-deploy-all-concurrently.integtest.ts +17 -0
- package/tests/cli-integ-tests/cdk-deploy-all.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-deploy-all.integtest.js +10 -0
- package/tests/cli-integ-tests/cdk-deploy-all.integtest.ts +14 -0
- package/tests/cli-integ-tests/cdk-deploy-and-test-stack-with-lambda-asset.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-deploy-and-test-stack-with-lambda-asset.integtest.js +22 -0
- package/tests/cli-integ-tests/cdk-deploy-and-test-stack-with-lambda-asset.integtest.ts +31 -0
- package/tests/cli-integ-tests/cdk-deploy-deletes-all-notification-arns-when-empty-array-is-passed.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-deploy-deletes-all-notification-arns-when-empty-array-is-passed.integtest.js +41 -0
- package/tests/cli-integ-tests/cdk-deploy-deletes-all-notification-arns-when-empty-array-is-passed.integtest.ts +50 -0
- package/tests/cli-integ-tests/cdk-deploy-no-stacks-error.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-deploy-no-stacks-error.integtest.js +13 -0
- package/tests/cli-integ-tests/cdk-deploy-no-stacks-error.integtest.ts +18 -0
- package/tests/cli-integ-tests/cdk-deploy-no-stacks-with---ignore-no-stacks.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-deploy-no-stacks-with---ignore-no-stacks.integtest.js +14 -0
- package/tests/cli-integ-tests/cdk-deploy-no-stacks-with---ignore-no-stacks.integtest.ts +17 -0
- package/tests/cli-integ-tests/cdk-deploy-preserves-existing-notification-arns-when-not-specified.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-deploy-preserves-existing-notification-arns-when-not-specified.integtest.js +38 -0
- package/tests/cli-integ-tests/cdk-deploy-preserves-existing-notification-arns-when-not-specified.integtest.ts +51 -0
- package/tests/cli-integ-tests/cdk-deploy-stack-with-docker-asset.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-deploy-stack-with-docker-asset.integtest.js +8 -0
- package/tests/cli-integ-tests/cdk-deploy-stack-with-docker-asset.integtest.ts +11 -0
- package/tests/cli-integ-tests/cdk-deploy-stack-with-lambda-asset-to-object-lock-enabled-asset-bucket.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-deploy-stack-with-lambda-asset-to-object-lock-enabled-asset-bucket.integtest.js +39 -0
- package/tests/cli-integ-tests/cdk-deploy-stack-with-lambda-asset-to-object-lock-enabled-asset-bucket.integtest.ts +42 -0
- package/tests/cli-integ-tests/cdk-deploy-stack-without-resource.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-deploy-stack-without-resource.integtest.js +17 -0
- package/tests/cli-integ-tests/cdk-deploy-stack-without-resource.integtest.ts +32 -0
- package/tests/cli-integ-tests/cdk-deploy-wildcard-with-outputs.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-deploy-wildcard-with-outputs.integtest.js +23 -0
- package/tests/cli-integ-tests/cdk-deploy-wildcard-with-outputs.integtest.ts +28 -0
- package/tests/cli-integ-tests/cdk-deploy-with-import-existing-resources-true.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-deploy-with-import-existing-resources-true.integtest.js +28 -0
- package/tests/cli-integ-tests/cdk-deploy-with-import-existing-resources-true.integtest.ts +29 -0
- package/tests/cli-integ-tests/cdk-deploy-with-method-direct-and-import-existing-resources-fails.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-deploy-with-method-direct-and-import-existing-resources-fails.integtest.js +16 -0
- package/tests/cli-integ-tests/cdk-deploy-with-method-direct-and-import-existing-resources-fails.integtest.ts +17 -0
- package/tests/cli-integ-tests/cdk-deploy-with-notification-arn-as-flag.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-deploy-with-notification-arn-as-flag.integtest.js +28 -0
- package/tests/cli-integ-tests/cdk-deploy-with-notification-arn-as-flag.integtest.ts +36 -0
- package/tests/cli-integ-tests/cdk-deploy-with-notification-arn-as-prop-and-flag.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-deploy-with-notification-arn-as-prop-and-flag.integtest.js +37 -0
- package/tests/cli-integ-tests/cdk-deploy-with-notification-arn-as-prop-and-flag.integtest.ts +45 -0
- package/tests/cli-integ-tests/cdk-deploy-with-notification-arn-as-prop.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-deploy-with-notification-arn-as-prop.integtest.js +31 -0
- package/tests/cli-integ-tests/cdk-deploy-with-notification-arn-as-prop.integtest.ts +37 -0
- package/tests/cli-integ-tests/cdk-deploy-with-parameters-multi.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-deploy-with-parameters-multi.integtest.js +26 -0
- package/tests/cli-integ-tests/cdk-deploy-with-parameters-multi.integtest.ts +33 -0
- package/tests/cli-integ-tests/cdk-deploy-with-parameters.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-deploy-with-parameters.integtest.js +20 -0
- package/tests/cli-integ-tests/cdk-deploy-with-parameters.integtest.ts +26 -0
- package/tests/cli-integ-tests/cdk-deploy-with-role.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-deploy-with-role.integtest.js +97 -0
- package/tests/cli-integ-tests/cdk-deploy-with-role.integtest.ts +119 -0
- package/tests/cli-integ-tests/cdk-deploy-with-wildcard-and-parameters.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-deploy-with-wildcard-and-parameters.integtest.js +19 -0
- package/tests/cli-integ-tests/cdk-deploy-with-wildcard-and-parameters.integtest.ts +22 -0
- package/tests/cli-integ-tests/cdk-deploy-without-execute-a-named-change-set.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-deploy-without-execute-a-named-change-set.integtest.js +28 -0
- package/tests/cli-integ-tests/cdk-deploy-without-execute-a-named-change-set.integtest.ts +36 -0
- package/tests/cli-integ-tests/cdk-deploy-without-import-existing-resources.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-deploy-without-import-existing-resources.integtest.js +27 -0
- package/tests/cli-integ-tests/cdk-deploy-without-import-existing-resources.integtest.ts +28 -0
- package/tests/cli-integ-tests/cdk-deploy.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-deploy.integtest.js +15 -0
- package/tests/cli-integ-tests/cdk-deploy.integtest.ts +20 -0
- package/tests/cli-integ-tests/cdk-destroy-interactive.integtest.js +1 -1
- package/tests/cli-integ-tests/cdk-destroy-interactive.integtest.ts +1 -1
- package/tests/cli-integ-tests/cdk-doubly-nested-stack.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-doubly-nested-stack.integtest.js +10 -0
- package/tests/cli-integ-tests/cdk-doubly-nested-stack.integtest.ts +12 -0
- package/tests/cli-integ-tests/cdk-enablediffnofail.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-enablediffnofail.integtest.js +34 -0
- package/tests/cli-integ-tests/cdk-enablediffnofail.integtest.ts +44 -0
- package/tests/cli-integ-tests/cdk-failed-deploy-does-not-hang.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-failed-deploy-does-not-hang.integtest.js +9 -0
- package/tests/cli-integ-tests/cdk-failed-deploy-does-not-hang.integtest.ts +12 -0
- package/tests/cli-integ-tests/cdk-fast-deploy.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-fast-deploy.integtest.js +35 -0
- package/tests/cli-integ-tests/cdk-fast-deploy.integtest.ts +41 -0
- package/tests/cli-integ-tests/cdk-gc-garbage-collection-deletes-unused-ecr-images.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-gc-garbage-collection-deletes-unused-ecr-images.integtest.js +39 -0
- package/tests/cli-integ-tests/cdk-gc-garbage-collection-deletes-unused-ecr-images.integtest.ts +48 -0
- package/tests/cli-integ-tests/cdk-gc-garbage-collection-deletes-unused-s3-objects.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-gc-garbage-collection-deletes-unused-s3-objects.integtest.js +43 -0
- package/tests/cli-integ-tests/cdk-gc-garbage-collection-deletes-unused-s3-objects.integtest.ts +51 -0
- package/tests/cli-integ-tests/cdk-gc-garbage-collection-keeps-in-use-ecr-images.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-gc-garbage-collection-keeps-in-use-ecr-images.integtest.js +39 -0
- package/tests/cli-integ-tests/cdk-gc-garbage-collection-keeps-in-use-ecr-images.integtest.ts +48 -0
- package/tests/cli-integ-tests/cdk-gc-garbage-collection-keeps-in-use-s3-objects.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-gc-garbage-collection-keeps-in-use-s3-objects.integtest.js +44 -0
- package/tests/cli-integ-tests/cdk-gc-garbage-collection-keeps-in-use-s3-objects.integtest.ts +52 -0
- package/tests/cli-integ-tests/cdk-gc-garbage-collection-tags-unused-ecr-images.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-gc-garbage-collection-tags-unused-ecr-images.integtest.js +38 -0
- package/tests/cli-integ-tests/cdk-gc-garbage-collection-tags-unused-ecr-images.integtest.ts +47 -0
- package/tests/cli-integ-tests/cdk-gc-garbage-collection-tags-unused-s3-objects.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-gc-garbage-collection-tags-unused-s3-objects.integtest.js +54 -0
- package/tests/cli-integ-tests/cdk-gc-garbage-collection-tags-unused-s3-objects.integtest.ts +63 -0
- package/tests/cli-integ-tests/cdk-gc-garbage-collection-untags-in-use-ecr-images.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-gc-garbage-collection-untags-in-use-ecr-images.integtest.js +45 -0
- package/tests/cli-integ-tests/cdk-gc-garbage-collection-untags-in-use-ecr-images.integtest.ts +55 -0
- package/tests/cli-integ-tests/cdk-gc-garbage-collection-untags-in-use-s3-objects.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-gc-garbage-collection-untags-in-use-s3-objects.integtest.js +53 -0
- package/tests/cli-integ-tests/cdk-gc-garbage-collection-untags-in-use-s3-objects.integtest.ts +63 -0
- package/tests/cli-integ-tests/cdk-generating-and-loading-assembly.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-generating-and-loading-assembly.integtest.js +44 -0
- package/tests/cli-integ-tests/cdk-generating-and-loading-assembly.integtest.ts +52 -0
- package/tests/cli-integ-tests/cdk-hotswap-deployment-for-ecs-service-detects-failed-deployment-and-errors.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-hotswap-deployment-for-ecs-service-detects-failed-deployment-and-errors.integtest.js +24 -0
- package/tests/cli-integ-tests/cdk-hotswap-deployment-for-ecs-service-detects-failed-deployment-and-errors.integtest.ts +29 -0
- package/tests/cli-integ-tests/cdk-hotswap-deployment-for-ecs-service-waits-for-deployment-to-complete.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-hotswap-deployment-for-ecs-service-waits-for-deployment-to-complete.integtest.js +33 -0
- package/tests/cli-integ-tests/cdk-hotswap-deployment-for-ecs-service-waits-for-deployment-to-complete.integtest.ts +45 -0
- package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-appsync-apis-with-many-functions.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-appsync-apis-with-many-functions.integtest.js +30 -0
- package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-appsync-apis-with-many-functions.integtest.ts +36 -0
- package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-ecs-service.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-ecs-service.integtest.js +33 -0
- package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-ecs-service.integtest.ts +41 -0
- package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-fn::importvalue-intrinsic.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-fn::importvalue-intrinsic.integtest.js +46 -0
- package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-fn::importvalue-intrinsic.integtest.ts +53 -0
- package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-lambda-functions-description-and-environment-variables.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-lambda-functions-description-and-environment-variables.integtest.js +36 -0
- package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-lambda-functions-description-and-environment-variables.integtest.ts +43 -0
- package/tests/cli-integ-tests/cdk-hotswap-ecs-deployment-respects-properties-override.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-hotswap-ecs-deployment-respects-properties-override.integtest.js +51 -0
- package/tests/cli-integ-tests/cdk-hotswap-ecs-deployment-respects-properties-override.integtest.ts +59 -0
- package/tests/cli-integ-tests/cdk-iam-diff.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-iam-diff.integtest.js +18 -0
- package/tests/cli-integ-tests/cdk-iam-diff.integtest.ts +23 -0
- package/tests/cli-integ-tests/cdk-import-interactive.integtest.js +1 -1
- package/tests/cli-integ-tests/cdk-import-interactive.integtest.ts +1 -1
- package/tests/cli-integ-tests/cdk-lib-cli-lib-deploy.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-lib-cli-lib-deploy.integtest.js +27 -0
- package/tests/cli-integ-tests/cdk-lib-cli-lib-deploy.integtest.ts +32 -0
- package/tests/cli-integ-tests/cdk-lib-cli-lib-list.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-lib-cli-lib-list.integtest.js +9 -0
- package/tests/cli-integ-tests/cdk-lib-cli-lib-list.integtest.ts +12 -0
- package/tests/cli-integ-tests/cdk-lib-cli-lib-synth.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-lib-cli-lib-synth.integtest.js +22 -0
- package/tests/cli-integ-tests/cdk-lib-cli-lib-synth.integtest.ts +27 -0
- package/tests/cli-integ-tests/cdk-lib-security-related-changes-without-a-cli-are-expected-to-fail-when-approval-is-required.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-lib-security-related-changes-without-a-cli-are-expected-to-fail-when-approval-is-required.integtest.js +20 -0
- package/tests/cli-integ-tests/cdk-lib-security-related-changes-without-a-cli-are-expected-to-fail-when-approval-is-required.integtest.ts +32 -0
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-csharp.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-csharp.integtest.js +9 -0
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-csharp.integtest.ts +11 -0
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-java.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-java.integtest.js +9 -0
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-java.integtest.ts +11 -0
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-python.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-python.integtest.js +9 -0
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-python.integtest.ts +11 -0
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-typescript.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-typescript.integtest.js +9 -0
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-typescript.integtest.ts +11 -0
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-csharp.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-csharp.integtest.js +9 -0
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-csharp.integtest.ts +13 -0
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-java.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-java.integtest.js +9 -0
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-java.integtest.ts +13 -0
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-python.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-python.integtest.js +9 -0
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-python.integtest.ts +13 -0
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-typescript.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-typescript.integtest.js +9 -0
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-typescript.integtest.ts +13 -0
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-generates-migrate.json.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-generates-migrate.json.integtest.js +16 -0
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-generates-migrate.json.integtest.ts +20 -0
- package/tests/cli-integ-tests/cdk-migrate/testcase.d.ts +3 -0
- package/tests/cli-integ-tests/cdk-migrate/testcase.js +55 -0
- package/tests/cli-integ-tests/cdk-migrate/testcase.ts +69 -0
- package/tests/cli-integ-tests/cdk-nested-stack-with-parameters.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-nested-stack-with-parameters.integtest.js +22 -0
- package/tests/cli-integ-tests/cdk-nested-stack-with-parameters.integtest.ts +28 -0
- package/tests/cli-integ-tests/cdk-requests-go-through-a-proxy-when-configured.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-requests-go-through-a-proxy-when-configured.integtest.js +36 -0
- package/tests/cli-integ-tests/cdk-requests-go-through-a-proxy-when-configured.integtest.ts +39 -0
- package/tests/cli-integ-tests/cdk-sam-can-locally-test-the-synthesized-cdk-application.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-sam-can-locally-test-the-synthesized-cdk-application.integtest.js +14 -0
- package/tests/cli-integ-tests/cdk-sam-can-locally-test-the-synthesized-cdk-application.integtest.ts +25 -0
- package/tests/cli-integ-tests/cdk-security-related-changes-without-a-cli-are-expected-to-fail.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-security-related-changes-without-a-cli-are-expected-to-fail.integtest.js +20 -0
- package/tests/cli-integ-tests/cdk-security-related-changes-without-a-cli-are-expected-to-fail.integtest.ts +30 -0
- package/tests/cli-integ-tests/cdk-skips-notice-refresh.integtest.d.ts +6 -0
- package/tests/cli-integ-tests/cdk-skips-notice-refresh.integtest.js +22 -0
- package/tests/cli-integ-tests/cdk-skips-notice-refresh.integtest.ts +26 -0
- package/tests/cli-integ-tests/cdk-ssm-parameter-provider-error.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-ssm-parameter-provider-error.integtest.js +10 -0
- package/tests/cli-integ-tests/cdk-ssm-parameter-provider-error.integtest.ts +18 -0
- package/tests/cli-integ-tests/cdk-stack-in-update_rollback_complete-state-can-be-updated.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-stack-in-update_rollback_complete-state-can-be-updated.integtest.js +41 -0
- package/tests/cli-integ-tests/cdk-stack-in-update_rollback_complete-state-can-be-updated.integtest.ts +59 -0
- package/tests/cli-integ-tests/cdk-stage-with-bundled-lambda-function.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-stage-with-bundled-lambda-function.integtest.js +10 -0
- package/tests/cli-integ-tests/cdk-stage-with-bundled-lambda-function.integtest.ts +13 -0
- package/tests/cli-integ-tests/cdk-synth---quiet-can-be-specified-in-cdk.json.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-synth---quiet-can-be-specified-in-cdk.json.integtest.js +17 -0
- package/tests/cli-integ-tests/cdk-synth---quiet-can-be-specified-in-cdk.json.integtest.ts +20 -0
- package/tests/cli-integ-tests/cdk-synthing-a-stage-with-errors-can-be-suppressed.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-synthing-a-stage-with-errors-can-be-suppressed.integtest.js +12 -0
- package/tests/cli-integ-tests/cdk-synthing-a-stage-with-errors-can-be-suppressed.integtest.ts +15 -0
- package/tests/cli-integ-tests/cdk-synthing-a-stage-with-errors-leads-to-failure.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-synthing-a-stage-with-errors-leads-to-failure.integtest.js +14 -0
- package/tests/cli-integ-tests/cdk-synthing-a-stage-with-errors-leads-to-failure.integtest.ts +18 -0
- package/tests/cli-integ-tests/cdk-templates-on-disk-contain-metadata-resource.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-templates-on-disk-contain-metadata-resource.integtest.js +18 -0
- package/tests/cli-integ-tests/cdk-templates-on-disk-contain-metadata-resource.integtest.ts +25 -0
- package/tests/cli-integ-tests/cdk-termination-protection.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-termination-protection.integtest.js +14 -0
- package/tests/cli-integ-tests/cdk-termination-protection.integtest.ts +19 -0
- package/tests/cli-integ-tests/cdk-test-cdk-rollback---force.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-test-cdk-rollback---force.integtest.js +40 -0
- package/tests/cli-integ-tests/cdk-test-cdk-rollback---force.integtest.ts +48 -0
- package/tests/cli-integ-tests/cdk-test-cdk-rollback.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-test-cdk-rollback.integtest.js +33 -0
- package/tests/cli-integ-tests/cdk-test-cdk-rollback.integtest.ts +38 -0
- package/tests/cli-integ-tests/cdk-test-migrate-deployment-for-app-with-localfile-source-in-migrate.json.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-test-migrate-deployment-for-app-with-localfile-source-in-migrate.json.integtest.js +45 -0
- package/tests/cli-integ-tests/cdk-test-migrate-deployment-for-app-with-localfile-source-in-migrate.json.integtest.ts +56 -0
- package/tests/cli-integ-tests/cdk-test-resource-import-with-construct-that-requires-bundling.integtest.d.ts +6 -0
- package/tests/cli-integ-tests/cdk-test-resource-import-with-construct-that-requires-bundling.integtest.js +59 -0
- package/tests/cli-integ-tests/cdk-test-resource-import-with-construct-that-requires-bundling.integtest.ts +74 -0
- package/tests/cli-integ-tests/cdk-test-resource-import.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-test-resource-import.integtest.js +51 -0
- package/tests/cli-integ-tests/cdk-test-resource-import.integtest.ts +64 -0
- package/tests/cli-integ-tests/cdk-two-ways-of-showing-the-version.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-two-ways-of-showing-the-version.integtest.js +10 -0
- package/tests/cli-integ-tests/cdk-two-ways-of-showing-the-version.integtest.ts +14 -0
- package/tests/cli-integ-tests/cdk-update-to-stack-in-rollback_complete-state-will-delete-stack-and-create-a-new-one.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-update-to-stack-in-rollback_complete-state-will-delete-stack-and-create-a-new-one.integtest.js +34 -0
- package/tests/cli-integ-tests/cdk-update-to-stack-in-rollback_complete-state-will-delete-stack-and-create-a-new-one.integtest.ts +47 -0
- package/tests/cli-integ-tests/cdk-vpc-lookup.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cdk-vpc-lookup.integtest.js +21 -0
- package/tests/cli-integ-tests/cdk-vpc-lookup.integtest.ts +26 -0
- package/tests/cli-integ-tests/bootstrapping.integtest.js +0 -431
- package/tests/cli-integ-tests/bootstrapping.integtest.ts +0 -517
- package/tests/cli-integ-tests/cli-lib.integtest.js +0 -62
- package/tests/cli-integ-tests/cli-lib.integtest.ts +0 -90
- package/tests/cli-integ-tests/cli.integtest.js +0 -2188
- package/tests/cli-integ-tests/cli.integtest.ts +0 -2971
- package/tests/cli-integ-tests/garbage-collection.integtest.js +0 -314
- package/tests/cli-integ-tests/garbage-collection.integtest.ts +0 -392
- /package/tests/cli-integ-tests/{bootstrapping.integtest.d.ts → cdk---exclusively-selects-only-selected-stack.integtest.d.ts} +0 -0
- /package/tests/cli-integ-tests/{cli-lib.integtest.d.ts → cdk-assets/cdk-assets-uses-profile.integtest.d.ts} +0 -0
- /package/tests/cli-integ-tests/{cli.integtest.d.ts → cdk-automatic-ordering-with-concurrency.integtest.d.ts} +0 -0
- /package/tests/cli-integ-tests/{garbage-collection.integtest.d.ts → cdk-automatic-ordering.integtest.d.ts} +0 -0
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { promises as fs } from 'fs';
|
|
2
|
+
import * as os from 'os';
|
|
3
|
+
import * as path from 'path';
|
|
4
|
+
import { integTest, withDefaultFixture } from '../../lib';
|
|
5
|
+
|
|
6
|
+
jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-case single-threaded runtime
|
|
7
|
+
|
|
8
|
+
integTest(
|
|
9
|
+
'generating and loading assembly',
|
|
10
|
+
withDefaultFixture(async (fixture) => {
|
|
11
|
+
const asmOutputDir = `${fixture.integTestDir}-cdk-integ-asm`;
|
|
12
|
+
await fixture.shell(['rm', '-rf', asmOutputDir]);
|
|
13
|
+
|
|
14
|
+
// Synthesize a Cloud Assembly tothe default directory (cdk.out) and a specific directory.
|
|
15
|
+
await fixture.cdk(['synth']);
|
|
16
|
+
await fixture.cdk(['synth', '--output', asmOutputDir]);
|
|
17
|
+
|
|
18
|
+
// cdk.out in the current directory and the indicated --output should be the same
|
|
19
|
+
await fixture.shell(['diff', 'cdk.out', asmOutputDir]);
|
|
20
|
+
|
|
21
|
+
// Check that we can 'ls' the synthesized asm.
|
|
22
|
+
// Change to some random directory to make sure we're not accidentally loading cdk.json
|
|
23
|
+
const list = await fixture.cdk(['--app', asmOutputDir, 'ls'], { cwd: os.tmpdir() });
|
|
24
|
+
// Same stacks we know are in the app
|
|
25
|
+
expect(list).toContain(`${fixture.stackNamePrefix}-lambda`);
|
|
26
|
+
expect(list).toContain(`${fixture.stackNamePrefix}-test-1`);
|
|
27
|
+
expect(list).toContain(`${fixture.stackNamePrefix}-test-2`);
|
|
28
|
+
|
|
29
|
+
// Check that we can use '.' and just synth ,the generated asm
|
|
30
|
+
const stackTemplate = await fixture.cdk(['--app', '.', 'synth', fixture.fullStackName('test-2')], {
|
|
31
|
+
cwd: asmOutputDir,
|
|
32
|
+
});
|
|
33
|
+
expect(stackTemplate).toContain('topic152D84A37');
|
|
34
|
+
|
|
35
|
+
// Deploy a Lambda from the copied asm
|
|
36
|
+
await fixture.cdkDeploy('lambda', { options: ['-a', '.'], cwd: asmOutputDir });
|
|
37
|
+
|
|
38
|
+
// Remove (rename) the original custom docker file that was used during synth.
|
|
39
|
+
// this verifies that the assemly has a copy of it and that the manifest uses
|
|
40
|
+
// relative paths to reference to it.
|
|
41
|
+
const customDockerFile = path.join(fixture.integTestDir, 'docker', 'Dockerfile.Custom');
|
|
42
|
+
await fs.rename(customDockerFile, `${customDockerFile}~`);
|
|
43
|
+
try {
|
|
44
|
+
// deploy a docker image with custom file without synth (uses assets)
|
|
45
|
+
await fixture.cdkDeploy('docker-with-custom-file', { options: ['-a', '.'], cwd: asmOutputDir });
|
|
46
|
+
} finally {
|
|
47
|
+
// Rename back to restore fixture to original state
|
|
48
|
+
await fs.rename(`${customDockerFile}~`, customDockerFile);
|
|
49
|
+
}
|
|
50
|
+
}),
|
|
51
|
+
);
|
|
52
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const lib_1 = require("../../lib");
|
|
4
|
+
jest.setTimeout(2 * 60 * 60000); // Includes the time to acquire locks, worst-case single-threaded runtime
|
|
5
|
+
(0, lib_1.integTest)('hotswap deployment for ecs service detects failed deployment and errors', (0, lib_1.withExtendedTimeoutFixture)(async (fixture) => {
|
|
6
|
+
// GIVEN
|
|
7
|
+
await fixture.cdkDeploy('ecs-hotswap', { verbose: true });
|
|
8
|
+
// WHEN
|
|
9
|
+
const deployOutput = await fixture.cdkDeploy('ecs-hotswap', {
|
|
10
|
+
options: ['--hotswap'],
|
|
11
|
+
modEnv: {
|
|
12
|
+
USE_INVALID_ECS_HOTSWAP_IMAGE: 'true',
|
|
13
|
+
},
|
|
14
|
+
allowErrExit: true,
|
|
15
|
+
verbose: true,
|
|
16
|
+
});
|
|
17
|
+
// THEN
|
|
18
|
+
const expectedSubstring = 'Resource is not in the expected state due to waiter status: TIMEOUT';
|
|
19
|
+
expect(deployOutput).toContain(expectedSubstring);
|
|
20
|
+
expect(deployOutput).toContain('Observed responses:');
|
|
21
|
+
expect(deployOutput).toContain('200: OK');
|
|
22
|
+
expect(deployOutput).not.toContain('hotswapped!');
|
|
23
|
+
}));
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWhvdHN3YXAtZGVwbG95bWVudC1mb3ItZWNzLXNlcnZpY2UtZGV0ZWN0cy1mYWlsZWQtZGVwbG95bWVudC1hbmQtZXJyb3JzLmludGVndGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNkay1ob3Rzd2FwLWRlcGxveW1lbnQtZm9yLWVjcy1zZXJ2aWNlLWRldGVjdHMtZmFpbGVkLWRlcGxveW1lbnQtYW5kLWVycm9ycy5pbnRlZ3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxtQ0FBa0U7QUFFbEUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEtBQU0sQ0FBQyxDQUFDLENBQUMseUVBQXlFO0FBRTNHLElBQUEsZUFBUyxFQUNQLHlFQUF5RSxFQUN6RSxJQUFBLGdDQUEwQixFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUMzQyxRQUFRO0lBQ1IsTUFBTSxPQUFPLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRTFELE9BQU87SUFDUCxNQUFNLFlBQVksR0FBRyxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFO1FBQzFELE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQztRQUN0QixNQUFNLEVBQUU7WUFDTiw2QkFBNkIsRUFBRSxNQUFNO1NBQ3RDO1FBQ0QsWUFBWSxFQUFFLElBQUk7UUFDbEIsT0FBTyxFQUFFLElBQUk7S0FDZCxDQUFDLENBQUM7SUFFSCxPQUFPO0lBQ1AsTUFBTSxpQkFBaUIsR0FBRyxxRUFBcUUsQ0FBQztJQUNoRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDbEQsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3RELE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDMUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDcEQsQ0FBQyxDQUFDLENBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGludGVnVGVzdCwgd2l0aEV4dGVuZGVkVGltZW91dEZpeHR1cmUgfSBmcm9tICcuLi8uLi9saWInO1xuXG5qZXN0LnNldFRpbWVvdXQoMiAqIDYwICogNjBfMDAwKTsgLy8gSW5jbHVkZXMgdGhlIHRpbWUgdG8gYWNxdWlyZSBsb2Nrcywgd29yc3QtY2FzZSBzaW5nbGUtdGhyZWFkZWQgcnVudGltZVxuXG5pbnRlZ1Rlc3QoXG4gICdob3Rzd2FwIGRlcGxveW1lbnQgZm9yIGVjcyBzZXJ2aWNlIGRldGVjdHMgZmFpbGVkIGRlcGxveW1lbnQgYW5kIGVycm9ycycsXG4gIHdpdGhFeHRlbmRlZFRpbWVvdXRGaXh0dXJlKGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gICAgLy8gR0lWRU5cbiAgICBhd2FpdCBmaXh0dXJlLmNka0RlcGxveSgnZWNzLWhvdHN3YXAnLCB7IHZlcmJvc2U6IHRydWUgfSk7XG5cbiAgICAvLyBXSEVOXG4gICAgY29uc3QgZGVwbG95T3V0cHV0ID0gYXdhaXQgZml4dHVyZS5jZGtEZXBsb3koJ2Vjcy1ob3Rzd2FwJywge1xuICAgICAgb3B0aW9uczogWyctLWhvdHN3YXAnXSxcbiAgICAgIG1vZEVudjoge1xuICAgICAgICBVU0VfSU5WQUxJRF9FQ1NfSE9UU1dBUF9JTUFHRTogJ3RydWUnLFxuICAgICAgfSxcbiAgICAgIGFsbG93RXJyRXhpdDogdHJ1ZSxcbiAgICAgIHZlcmJvc2U6IHRydWUsXG4gICAgfSk7XG5cbiAgICAvLyBUSEVOXG4gICAgY29uc3QgZXhwZWN0ZWRTdWJzdHJpbmcgPSAnUmVzb3VyY2UgaXMgbm90IGluIHRoZSBleHBlY3RlZCBzdGF0ZSBkdWUgdG8gd2FpdGVyIHN0YXR1czogVElNRU9VVCc7XG4gICAgZXhwZWN0KGRlcGxveU91dHB1dCkudG9Db250YWluKGV4cGVjdGVkU3Vic3RyaW5nKTtcbiAgICBleHBlY3QoZGVwbG95T3V0cHV0KS50b0NvbnRhaW4oJ09ic2VydmVkIHJlc3BvbnNlczonKTtcbiAgICBleHBlY3QoZGVwbG95T3V0cHV0KS50b0NvbnRhaW4oJzIwMDogT0snKTtcbiAgICBleHBlY3QoZGVwbG95T3V0cHV0KS5ub3QudG9Db250YWluKCdob3Rzd2FwcGVkIScpO1xuICB9KSxcbik7XG5cbiJdfQ==
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { integTest, withExtendedTimeoutFixture } from '../../lib';
|
|
2
|
+
|
|
3
|
+
jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-case single-threaded runtime
|
|
4
|
+
|
|
5
|
+
integTest(
|
|
6
|
+
'hotswap deployment for ecs service detects failed deployment and errors',
|
|
7
|
+
withExtendedTimeoutFixture(async (fixture) => {
|
|
8
|
+
// GIVEN
|
|
9
|
+
await fixture.cdkDeploy('ecs-hotswap', { verbose: true });
|
|
10
|
+
|
|
11
|
+
// WHEN
|
|
12
|
+
const deployOutput = await fixture.cdkDeploy('ecs-hotswap', {
|
|
13
|
+
options: ['--hotswap'],
|
|
14
|
+
modEnv: {
|
|
15
|
+
USE_INVALID_ECS_HOTSWAP_IMAGE: 'true',
|
|
16
|
+
},
|
|
17
|
+
allowErrExit: true,
|
|
18
|
+
verbose: true,
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
// THEN
|
|
22
|
+
const expectedSubstring = 'Resource is not in the expected state due to waiter status: TIMEOUT';
|
|
23
|
+
expect(deployOutput).toContain(expectedSubstring);
|
|
24
|
+
expect(deployOutput).toContain('Observed responses:');
|
|
25
|
+
expect(deployOutput).toContain('200: OK');
|
|
26
|
+
expect(deployOutput).not.toContain('hotswapped!');
|
|
27
|
+
}),
|
|
28
|
+
);
|
|
29
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const client_cloudformation_1 = require("@aws-sdk/client-cloudformation");
|
|
4
|
+
const client_ecs_1 = require("@aws-sdk/client-ecs");
|
|
5
|
+
const lib_1 = require("../../lib");
|
|
6
|
+
jest.setTimeout(2 * 60 * 60000); // Includes the time to acquire locks, worst-case single-threaded runtime
|
|
7
|
+
(0, lib_1.integTest)('hotswap deployment for ecs service waits for deployment to complete', (0, lib_1.withDefaultFixture)(async (fixture) => {
|
|
8
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
9
|
+
// GIVEN
|
|
10
|
+
const stackArn = await fixture.cdkDeploy('ecs-hotswap', {
|
|
11
|
+
captureStderr: false,
|
|
12
|
+
});
|
|
13
|
+
// WHEN
|
|
14
|
+
const deployOutput = await fixture.cdkDeploy('ecs-hotswap', {
|
|
15
|
+
options: ['--hotswap'],
|
|
16
|
+
modEnv: {
|
|
17
|
+
DYNAMIC_ECS_PROPERTY_VALUE: 'new value',
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
const describeStacksResponse = await fixture.aws.cloudFormation.send(new client_cloudformation_1.DescribeStacksCommand({
|
|
21
|
+
StackName: stackArn,
|
|
22
|
+
}));
|
|
23
|
+
const clusterName = (_c = (_b = (_a = describeStacksResponse.Stacks) === null || _a === void 0 ? void 0 : _a[0].Outputs) === null || _b === void 0 ? void 0 : _b.find((output) => output.OutputKey == 'ClusterName')) === null || _c === void 0 ? void 0 : _c.OutputValue;
|
|
24
|
+
const serviceName = (_f = (_e = (_d = describeStacksResponse.Stacks) === null || _d === void 0 ? void 0 : _d[0].Outputs) === null || _e === void 0 ? void 0 : _e.find((output) => output.OutputKey == 'ServiceName')) === null || _f === void 0 ? void 0 : _f.OutputValue;
|
|
25
|
+
// THEN
|
|
26
|
+
const describeServicesResponse = await fixture.aws.ecs.send(new client_ecs_1.DescribeServicesCommand({
|
|
27
|
+
cluster: clusterName,
|
|
28
|
+
services: [serviceName],
|
|
29
|
+
}));
|
|
30
|
+
expect((_g = describeServicesResponse.services) === null || _g === void 0 ? void 0 : _g[0].deployments).toHaveLength(1); // only one deployment present
|
|
31
|
+
expect(deployOutput).toMatch(/hotswapped!/);
|
|
32
|
+
}));
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWhvdHN3YXAtZGVwbG95bWVudC1mb3ItZWNzLXNlcnZpY2Utd2FpdHMtZm9yLWRlcGxveW1lbnQtdG8tY29tcGxldGUuaW50ZWd0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2RrLWhvdHN3YXAtZGVwbG95bWVudC1mb3ItZWNzLXNlcnZpY2Utd2FpdHMtZm9yLWRlcGxveW1lbnQtdG8tY29tcGxldGUuaW50ZWd0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMEVBQXVFO0FBQ3ZFLG9EQUE4RDtBQUM5RCxtQ0FBMEQ7QUFFMUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEtBQU0sQ0FBQyxDQUFDLENBQUMseUVBQXlFO0FBRTNHLElBQUEsZUFBUyxFQUNQLHFFQUFxRSxFQUNyRSxJQUFBLHdCQUFrQixFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTs7SUFDbkMsUUFBUTtJQUNSLE1BQU0sUUFBUSxHQUFHLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUU7UUFDdEQsYUFBYSxFQUFFLEtBQUs7S0FDckIsQ0FBQyxDQUFDO0lBRUgsT0FBTztJQUNQLE1BQU0sWUFBWSxHQUFHLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUU7UUFDMUQsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUFDO1FBQ3RCLE1BQU0sRUFBRTtZQUNOLDBCQUEwQixFQUFFLFdBQVc7U0FDeEM7S0FDRixDQUFDLENBQUM7SUFFSCxNQUFNLHNCQUFzQixHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUNsRSxJQUFJLDZDQUFxQixDQUFDO1FBQ3hCLFNBQVMsRUFBRSxRQUFRO0tBQ3BCLENBQUMsQ0FDSCxDQUFDO0lBQ0YsTUFBTSxXQUFXLEdBQUcsTUFBQSxNQUFBLE1BQUEsc0JBQXNCLENBQUMsTUFBTSwwQ0FBRyxDQUFDLEVBQUUsT0FBTywwQ0FBRSxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLElBQUksYUFBYSxDQUFDLDBDQUMvRyxXQUFZLENBQUM7SUFDakIsTUFBTSxXQUFXLEdBQUcsTUFBQSxNQUFBLE1BQUEsc0JBQXNCLENBQUMsTUFBTSwwQ0FBRyxDQUFDLEVBQUUsT0FBTywwQ0FBRSxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLElBQUksYUFBYSxDQUFDLDBDQUMvRyxXQUFZLENBQUM7SUFFakIsT0FBTztJQUVQLE1BQU0sd0JBQXdCLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQ3pELElBQUksb0NBQXVCLENBQUM7UUFDMUIsT0FBTyxFQUFFLFdBQVc7UUFDcEIsUUFBUSxFQUFFLENBQUMsV0FBVyxDQUFDO0tBQ3hCLENBQUMsQ0FDSCxDQUFDO0lBQ0YsTUFBTSxDQUFDLE1BQUEsd0JBQXdCLENBQUMsUUFBUSwwQ0FBRyxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsOEJBQThCO0lBQzFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDOUMsQ0FBQyxDQUFDLENBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc2NyaWJlU3RhY2tzQ29tbWFuZCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgeyBEZXNjcmliZVNlcnZpY2VzQ29tbWFuZCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1lY3MnO1xuaW1wb3J0IHsgaW50ZWdUZXN0LCB3aXRoRGVmYXVsdEZpeHR1cmUgfSBmcm9tICcuLi8uLi9saWInO1xuXG5qZXN0LnNldFRpbWVvdXQoMiAqIDYwICogNjBfMDAwKTsgLy8gSW5jbHVkZXMgdGhlIHRpbWUgdG8gYWNxdWlyZSBsb2Nrcywgd29yc3QtY2FzZSBzaW5nbGUtdGhyZWFkZWQgcnVudGltZVxuXG5pbnRlZ1Rlc3QoXG4gICdob3Rzd2FwIGRlcGxveW1lbnQgZm9yIGVjcyBzZXJ2aWNlIHdhaXRzIGZvciBkZXBsb3ltZW50IHRvIGNvbXBsZXRlJyxcbiAgd2l0aERlZmF1bHRGaXh0dXJlKGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gICAgLy8gR0lWRU5cbiAgICBjb25zdCBzdGFja0FybiA9IGF3YWl0IGZpeHR1cmUuY2RrRGVwbG95KCdlY3MtaG90c3dhcCcsIHtcbiAgICAgIGNhcHR1cmVTdGRlcnI6IGZhbHNlLFxuICAgIH0pO1xuXG4gICAgLy8gV0hFTlxuICAgIGNvbnN0IGRlcGxveU91dHB1dCA9IGF3YWl0IGZpeHR1cmUuY2RrRGVwbG95KCdlY3MtaG90c3dhcCcsIHtcbiAgICAgIG9wdGlvbnM6IFsnLS1ob3Rzd2FwJ10sXG4gICAgICBtb2RFbnY6IHtcbiAgICAgICAgRFlOQU1JQ19FQ1NfUFJPUEVSVFlfVkFMVUU6ICduZXcgdmFsdWUnLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGRlc2NyaWJlU3RhY2tzUmVzcG9uc2UgPSBhd2FpdCBmaXh0dXJlLmF3cy5jbG91ZEZvcm1hdGlvbi5zZW5kKFxuICAgICAgbmV3IERlc2NyaWJlU3RhY2tzQ29tbWFuZCh7XG4gICAgICAgIFN0YWNrTmFtZTogc3RhY2tBcm4sXG4gICAgICB9KSxcbiAgICApO1xuICAgIGNvbnN0IGNsdXN0ZXJOYW1lID0gZGVzY3JpYmVTdGFja3NSZXNwb25zZS5TdGFja3M/LlswXS5PdXRwdXRzPy5maW5kKChvdXRwdXQpID0+IG91dHB1dC5PdXRwdXRLZXkgPT0gJ0NsdXN0ZXJOYW1lJylcbiAgICAgID8uT3V0cHV0VmFsdWUhO1xuICAgIGNvbnN0IHNlcnZpY2VOYW1lID0gZGVzY3JpYmVTdGFja3NSZXNwb25zZS5TdGFja3M/LlswXS5PdXRwdXRzPy5maW5kKChvdXRwdXQpID0+IG91dHB1dC5PdXRwdXRLZXkgPT0gJ1NlcnZpY2VOYW1lJylcbiAgICAgID8uT3V0cHV0VmFsdWUhO1xuXG4gICAgLy8gVEhFTlxuXG4gICAgY29uc3QgZGVzY3JpYmVTZXJ2aWNlc1Jlc3BvbnNlID0gYXdhaXQgZml4dHVyZS5hd3MuZWNzLnNlbmQoXG4gICAgICBuZXcgRGVzY3JpYmVTZXJ2aWNlc0NvbW1hbmQoe1xuICAgICAgICBjbHVzdGVyOiBjbHVzdGVyTmFtZSxcbiAgICAgICAgc2VydmljZXM6IFtzZXJ2aWNlTmFtZV0sXG4gICAgICB9KSxcbiAgICApO1xuICAgIGV4cGVjdChkZXNjcmliZVNlcnZpY2VzUmVzcG9uc2Uuc2VydmljZXM/LlswXS5kZXBsb3ltZW50cykudG9IYXZlTGVuZ3RoKDEpOyAvLyBvbmx5IG9uZSBkZXBsb3ltZW50IHByZXNlbnRcbiAgICBleHBlY3QoZGVwbG95T3V0cHV0KS50b01hdGNoKC9ob3Rzd2FwcGVkIS8pO1xuICB9KSxcbik7XG5cbiJdfQ==
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { DescribeStacksCommand } from '@aws-sdk/client-cloudformation';
|
|
2
|
+
import { DescribeServicesCommand } from '@aws-sdk/client-ecs';
|
|
3
|
+
import { integTest, withDefaultFixture } from '../../lib';
|
|
4
|
+
|
|
5
|
+
jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-case single-threaded runtime
|
|
6
|
+
|
|
7
|
+
integTest(
|
|
8
|
+
'hotswap deployment for ecs service waits for deployment to complete',
|
|
9
|
+
withDefaultFixture(async (fixture) => {
|
|
10
|
+
// GIVEN
|
|
11
|
+
const stackArn = await fixture.cdkDeploy('ecs-hotswap', {
|
|
12
|
+
captureStderr: false,
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
// WHEN
|
|
16
|
+
const deployOutput = await fixture.cdkDeploy('ecs-hotswap', {
|
|
17
|
+
options: ['--hotswap'],
|
|
18
|
+
modEnv: {
|
|
19
|
+
DYNAMIC_ECS_PROPERTY_VALUE: 'new value',
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
const describeStacksResponse = await fixture.aws.cloudFormation.send(
|
|
24
|
+
new DescribeStacksCommand({
|
|
25
|
+
StackName: stackArn,
|
|
26
|
+
}),
|
|
27
|
+
);
|
|
28
|
+
const clusterName = describeStacksResponse.Stacks?.[0].Outputs?.find((output) => output.OutputKey == 'ClusterName')
|
|
29
|
+
?.OutputValue!;
|
|
30
|
+
const serviceName = describeStacksResponse.Stacks?.[0].Outputs?.find((output) => output.OutputKey == 'ServiceName')
|
|
31
|
+
?.OutputValue!;
|
|
32
|
+
|
|
33
|
+
// THEN
|
|
34
|
+
|
|
35
|
+
const describeServicesResponse = await fixture.aws.ecs.send(
|
|
36
|
+
new DescribeServicesCommand({
|
|
37
|
+
cluster: clusterName,
|
|
38
|
+
services: [serviceName],
|
|
39
|
+
}),
|
|
40
|
+
);
|
|
41
|
+
expect(describeServicesResponse.services?.[0].deployments).toHaveLength(1); // only one deployment present
|
|
42
|
+
expect(deployOutput).toMatch(/hotswapped!/);
|
|
43
|
+
}),
|
|
44
|
+
);
|
|
45
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const client_cloudformation_1 = require("@aws-sdk/client-cloudformation");
|
|
4
|
+
const lib_1 = require("../../lib");
|
|
5
|
+
jest.setTimeout(2 * 60 * 60000); // Includes the time to acquire locks, worst-case single-threaded runtime
|
|
6
|
+
(0, lib_1.integTest)('hotswap deployment supports AppSync APIs with many functions', (0, lib_1.withDefaultFixture)(async (fixture) => {
|
|
7
|
+
var _a;
|
|
8
|
+
// GIVEN
|
|
9
|
+
const stackArn = await fixture.cdkDeploy('appsync-hotswap', {
|
|
10
|
+
captureStderr: false,
|
|
11
|
+
});
|
|
12
|
+
// WHEN
|
|
13
|
+
const deployOutput = await fixture.cdkDeploy('appsync-hotswap', {
|
|
14
|
+
options: ['--hotswap'],
|
|
15
|
+
captureStderr: true,
|
|
16
|
+
onlyStderr: true,
|
|
17
|
+
modEnv: {
|
|
18
|
+
DYNAMIC_APPSYNC_PROPERTY_VALUE: '$util.qr($ctx.stash.put("newTemplate", []))\n$util.toJson({})',
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
const response = await fixture.aws.cloudFormation.send(new client_cloudformation_1.DescribeStacksCommand({
|
|
22
|
+
StackName: stackArn,
|
|
23
|
+
}));
|
|
24
|
+
expect((_a = response.Stacks) === null || _a === void 0 ? void 0 : _a[0].StackStatus).toEqual('CREATE_COMPLETE');
|
|
25
|
+
// assert all 50 functions were hotswapped
|
|
26
|
+
for (const i of Array(50).keys()) {
|
|
27
|
+
expect(deployOutput).toContain(`AWS::AppSync::FunctionConfiguration 'appsync_function${i}' hotswapped!`);
|
|
28
|
+
}
|
|
29
|
+
}));
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWhvdHN3YXAtZGVwbG95bWVudC1zdXBwb3J0cy1hcHBzeW5jLWFwaXMtd2l0aC1tYW55LWZ1bmN0aW9ucy5pbnRlZ3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjZGstaG90c3dhcC1kZXBsb3ltZW50LXN1cHBvcnRzLWFwcHN5bmMtYXBpcy13aXRoLW1hbnktZnVuY3Rpb25zLmludGVndGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDBFQUF1RTtBQUN2RSxtQ0FBMEQ7QUFFMUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEtBQU0sQ0FBQyxDQUFDLENBQUMseUVBQXlFO0FBRTNHLElBQUEsZUFBUyxFQUFDLDhEQUE4RCxFQUN0RSxJQUFBLHdCQUFrQixFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTs7SUFDbkMsUUFBUTtJQUNSLE1BQU0sUUFBUSxHQUFHLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsRUFBRTtRQUMxRCxhQUFhLEVBQUUsS0FBSztLQUNyQixDQUFDLENBQUM7SUFFSCxPQUFPO0lBQ1AsTUFBTSxZQUFZLEdBQUcsTUFBTSxPQUFPLENBQUMsU0FBUyxDQUFDLGlCQUFpQixFQUFFO1FBQzlELE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQztRQUN0QixhQUFhLEVBQUUsSUFBSTtRQUNuQixVQUFVLEVBQUUsSUFBSTtRQUNoQixNQUFNLEVBQUU7WUFDTiw4QkFBOEIsRUFBRSwrREFBK0Q7U0FDaEc7S0FDRixDQUFDLENBQUM7SUFFSCxNQUFNLFFBQVEsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDcEQsSUFBSSw2Q0FBcUIsQ0FBQztRQUN4QixTQUFTLEVBQUUsUUFBUTtLQUNwQixDQUFDLENBQ0gsQ0FBQztJQUVGLE1BQU0sQ0FBQyxNQUFBLFFBQVEsQ0FBQyxNQUFNLDBDQUFHLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNwRSwwQ0FBMEM7SUFDMUMsS0FBSyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUNqQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsU0FBUyxDQUFDLHdEQUF3RCxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzNHLENBQUM7QUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVzY3JpYmVTdGFja3NDb21tYW5kIH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB7IGludGVnVGVzdCwgd2l0aERlZmF1bHRGaXh0dXJlIH0gZnJvbSAnLi4vLi4vbGliJztcblxuamVzdC5zZXRUaW1lb3V0KDIgKiA2MCAqIDYwXzAwMCk7IC8vIEluY2x1ZGVzIHRoZSB0aW1lIHRvIGFjcXVpcmUgbG9ja3MsIHdvcnN0LWNhc2Ugc2luZ2xlLXRocmVhZGVkIHJ1bnRpbWVcblxuaW50ZWdUZXN0KCdob3Rzd2FwIGRlcGxveW1lbnQgc3VwcG9ydHMgQXBwU3luYyBBUElzIHdpdGggbWFueSBmdW5jdGlvbnMnLFxuICB3aXRoRGVmYXVsdEZpeHR1cmUoYXN5bmMgKGZpeHR1cmUpID0+IHtcbiAgICAvLyBHSVZFTlxuICAgIGNvbnN0IHN0YWNrQXJuID0gYXdhaXQgZml4dHVyZS5jZGtEZXBsb3koJ2FwcHN5bmMtaG90c3dhcCcsIHtcbiAgICAgIGNhcHR1cmVTdGRlcnI6IGZhbHNlLFxuICAgIH0pO1xuXG4gICAgLy8gV0hFTlxuICAgIGNvbnN0IGRlcGxveU91dHB1dCA9IGF3YWl0IGZpeHR1cmUuY2RrRGVwbG95KCdhcHBzeW5jLWhvdHN3YXAnLCB7XG4gICAgICBvcHRpb25zOiBbJy0taG90c3dhcCddLFxuICAgICAgY2FwdHVyZVN0ZGVycjogdHJ1ZSxcbiAgICAgIG9ubHlTdGRlcnI6IHRydWUsXG4gICAgICBtb2RFbnY6IHtcbiAgICAgICAgRFlOQU1JQ19BUFBTWU5DX1BST1BFUlRZX1ZBTFVFOiAnJHV0aWwucXIoJGN0eC5zdGFzaC5wdXQoXCJuZXdUZW1wbGF0ZVwiLCBbXSkpXFxuJHV0aWwudG9Kc29uKHt9KScsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmaXh0dXJlLmF3cy5jbG91ZEZvcm1hdGlvbi5zZW5kKFxuICAgICAgbmV3IERlc2NyaWJlU3RhY2tzQ29tbWFuZCh7XG4gICAgICAgIFN0YWNrTmFtZTogc3RhY2tBcm4sXG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgZXhwZWN0KHJlc3BvbnNlLlN0YWNrcz8uWzBdLlN0YWNrU3RhdHVzKS50b0VxdWFsKCdDUkVBVEVfQ09NUExFVEUnKTtcbiAgICAvLyBhc3NlcnQgYWxsIDUwIGZ1bmN0aW9ucyB3ZXJlIGhvdHN3YXBwZWRcbiAgICBmb3IgKGNvbnN0IGkgb2YgQXJyYXkoNTApLmtleXMoKSkge1xuICAgICAgZXhwZWN0KGRlcGxveU91dHB1dCkudG9Db250YWluKGBBV1M6OkFwcFN5bmM6OkZ1bmN0aW9uQ29uZmlndXJhdGlvbiAnYXBwc3luY19mdW5jdGlvbiR7aX0nIGhvdHN3YXBwZWQhYCk7XG4gICAgfVxuICB9KSxcbik7XG5cbiJdfQ==
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { DescribeStacksCommand } from '@aws-sdk/client-cloudformation';
|
|
2
|
+
import { integTest, withDefaultFixture } from '../../lib';
|
|
3
|
+
|
|
4
|
+
jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-case single-threaded runtime
|
|
5
|
+
|
|
6
|
+
integTest('hotswap deployment supports AppSync APIs with many functions',
|
|
7
|
+
withDefaultFixture(async (fixture) => {
|
|
8
|
+
// GIVEN
|
|
9
|
+
const stackArn = await fixture.cdkDeploy('appsync-hotswap', {
|
|
10
|
+
captureStderr: false,
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
// WHEN
|
|
14
|
+
const deployOutput = await fixture.cdkDeploy('appsync-hotswap', {
|
|
15
|
+
options: ['--hotswap'],
|
|
16
|
+
captureStderr: true,
|
|
17
|
+
onlyStderr: true,
|
|
18
|
+
modEnv: {
|
|
19
|
+
DYNAMIC_APPSYNC_PROPERTY_VALUE: '$util.qr($ctx.stash.put("newTemplate", []))\n$util.toJson({})',
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
const response = await fixture.aws.cloudFormation.send(
|
|
24
|
+
new DescribeStacksCommand({
|
|
25
|
+
StackName: stackArn,
|
|
26
|
+
}),
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
expect(response.Stacks?.[0].StackStatus).toEqual('CREATE_COMPLETE');
|
|
30
|
+
// assert all 50 functions were hotswapped
|
|
31
|
+
for (const i of Array(50).keys()) {
|
|
32
|
+
expect(deployOutput).toContain(`AWS::AppSync::FunctionConfiguration 'appsync_function${i}' hotswapped!`);
|
|
33
|
+
}
|
|
34
|
+
}),
|
|
35
|
+
);
|
|
36
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const client_cloudformation_1 = require("@aws-sdk/client-cloudformation");
|
|
4
|
+
const lib_1 = require("../../lib");
|
|
5
|
+
jest.setTimeout(2 * 60 * 60000); // Includes the time to acquire locks, worst-case single-threaded runtime
|
|
6
|
+
(0, lib_1.integTest)('hotswap deployment supports ecs service', (0, lib_1.withDefaultFixture)(async (fixture) => {
|
|
7
|
+
var _a, _b, _c, _d;
|
|
8
|
+
// GIVEN
|
|
9
|
+
const stackArn = await fixture.cdkDeploy('ecs-hotswap', {
|
|
10
|
+
captureStderr: false,
|
|
11
|
+
});
|
|
12
|
+
// WHEN
|
|
13
|
+
const deployOutput = await fixture.cdkDeploy('ecs-hotswap', {
|
|
14
|
+
options: ['--hotswap'],
|
|
15
|
+
captureStderr: true,
|
|
16
|
+
onlyStderr: true,
|
|
17
|
+
modEnv: {
|
|
18
|
+
DYNAMIC_ECS_PROPERTY_VALUE: 'new value',
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
const response = await fixture.aws.cloudFormation.send(new client_cloudformation_1.DescribeStacksCommand({
|
|
22
|
+
StackName: stackArn,
|
|
23
|
+
}));
|
|
24
|
+
const serviceName = (_c = (_b = (_a = response.Stacks) === null || _a === void 0 ? void 0 : _a[0].Outputs) === null || _b === void 0 ? void 0 : _b.find((output) => output.OutputKey == 'ServiceName')) === null || _c === void 0 ? void 0 : _c.OutputValue;
|
|
25
|
+
// THEN
|
|
26
|
+
// The deployment should not trigger a full deployment, thus the stack's status must remains
|
|
27
|
+
// "CREATE_COMPLETE"
|
|
28
|
+
expect((_d = response.Stacks) === null || _d === void 0 ? void 0 : _d[0].StackStatus).toEqual('CREATE_COMPLETE');
|
|
29
|
+
// The entire string fails locally due to formatting. Making this test less specific
|
|
30
|
+
expect(deployOutput).toMatch(/hotswapped!/);
|
|
31
|
+
expect(deployOutput).toContain(serviceName);
|
|
32
|
+
}));
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWhvdHN3YXAtZGVwbG95bWVudC1zdXBwb3J0cy1lY3Mtc2VydmljZS5pbnRlZ3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjZGstaG90c3dhcC1kZXBsb3ltZW50LXN1cHBvcnRzLWVjcy1zZXJ2aWNlLmludGVndGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDBFQUF1RTtBQUN2RSxtQ0FBMEQ7QUFFMUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEtBQU0sQ0FBQyxDQUFDLENBQUMseUVBQXlFO0FBRTNHLElBQUEsZUFBUyxFQUNQLHlDQUF5QyxFQUN6QyxJQUFBLHdCQUFrQixFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTs7SUFDbkMsUUFBUTtJQUNSLE1BQU0sUUFBUSxHQUFHLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUU7UUFDdEQsYUFBYSxFQUFFLEtBQUs7S0FDckIsQ0FBQyxDQUFDO0lBRUgsT0FBTztJQUNQLE1BQU0sWUFBWSxHQUFHLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUU7UUFDMUQsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUFDO1FBQ3RCLGFBQWEsRUFBRSxJQUFJO1FBQ25CLFVBQVUsRUFBRSxJQUFJO1FBQ2hCLE1BQU0sRUFBRTtZQUNOLDBCQUEwQixFQUFFLFdBQVc7U0FDeEM7S0FDRixDQUFDLENBQUM7SUFFSCxNQUFNLFFBQVEsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDcEQsSUFBSSw2Q0FBcUIsQ0FBQztRQUN4QixTQUFTLEVBQUUsUUFBUTtLQUNwQixDQUFDLENBQ0gsQ0FBQztJQUNGLE1BQU0sV0FBVyxHQUFHLE1BQUEsTUFBQSxNQUFBLFFBQVEsQ0FBQyxNQUFNLDBDQUFHLENBQUMsRUFBRSxPQUFPLDBDQUFFLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsSUFBSSxhQUFhLENBQUMsMENBQUUsV0FBVyxDQUFDO0lBRW5ILE9BQU87SUFFUCw0RkFBNEY7SUFDNUYsb0JBQW9CO0lBQ3BCLE1BQU0sQ0FBQyxNQUFBLFFBQVEsQ0FBQyxNQUFNLDBDQUFHLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNwRSxvRkFBb0Y7SUFDcEYsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM1QyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQzlDLENBQUMsQ0FBQyxDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXNjcmliZVN0YWNrc0NvbW1hbmQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0IHsgaW50ZWdUZXN0LCB3aXRoRGVmYXVsdEZpeHR1cmUgfSBmcm9tICcuLi8uLi9saWInO1xuXG5qZXN0LnNldFRpbWVvdXQoMiAqIDYwICogNjBfMDAwKTsgLy8gSW5jbHVkZXMgdGhlIHRpbWUgdG8gYWNxdWlyZSBsb2Nrcywgd29yc3QtY2FzZSBzaW5nbGUtdGhyZWFkZWQgcnVudGltZVxuXG5pbnRlZ1Rlc3QoXG4gICdob3Rzd2FwIGRlcGxveW1lbnQgc3VwcG9ydHMgZWNzIHNlcnZpY2UnLFxuICB3aXRoRGVmYXVsdEZpeHR1cmUoYXN5bmMgKGZpeHR1cmUpID0+IHtcbiAgICAvLyBHSVZFTlxuICAgIGNvbnN0IHN0YWNrQXJuID0gYXdhaXQgZml4dHVyZS5jZGtEZXBsb3koJ2Vjcy1ob3Rzd2FwJywge1xuICAgICAgY2FwdHVyZVN0ZGVycjogZmFsc2UsXG4gICAgfSk7XG5cbiAgICAvLyBXSEVOXG4gICAgY29uc3QgZGVwbG95T3V0cHV0ID0gYXdhaXQgZml4dHVyZS5jZGtEZXBsb3koJ2Vjcy1ob3Rzd2FwJywge1xuICAgICAgb3B0aW9uczogWyctLWhvdHN3YXAnXSxcbiAgICAgIGNhcHR1cmVTdGRlcnI6IHRydWUsXG4gICAgICBvbmx5U3RkZXJyOiB0cnVlLFxuICAgICAgbW9kRW52OiB7XG4gICAgICAgIERZTkFNSUNfRUNTX1BST1BFUlRZX1ZBTFVFOiAnbmV3IHZhbHVlJyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZpeHR1cmUuYXdzLmNsb3VkRm9ybWF0aW9uLnNlbmQoXG4gICAgICBuZXcgRGVzY3JpYmVTdGFja3NDb21tYW5kKHtcbiAgICAgICAgU3RhY2tOYW1lOiBzdGFja0FybixcbiAgICAgIH0pLFxuICAgICk7XG4gICAgY29uc3Qgc2VydmljZU5hbWUgPSByZXNwb25zZS5TdGFja3M/LlswXS5PdXRwdXRzPy5maW5kKChvdXRwdXQpID0+IG91dHB1dC5PdXRwdXRLZXkgPT0gJ1NlcnZpY2VOYW1lJyk/Lk91dHB1dFZhbHVlO1xuXG4gICAgLy8gVEhFTlxuXG4gICAgLy8gVGhlIGRlcGxveW1lbnQgc2hvdWxkIG5vdCB0cmlnZ2VyIGEgZnVsbCBkZXBsb3ltZW50LCB0aHVzIHRoZSBzdGFjaydzIHN0YXR1cyBtdXN0IHJlbWFpbnNcbiAgICAvLyBcIkNSRUFURV9DT01QTEVURVwiXG4gICAgZXhwZWN0KHJlc3BvbnNlLlN0YWNrcz8uWzBdLlN0YWNrU3RhdHVzKS50b0VxdWFsKCdDUkVBVEVfQ09NUExFVEUnKTtcbiAgICAvLyBUaGUgZW50aXJlIHN0cmluZyBmYWlscyBsb2NhbGx5IGR1ZSB0byBmb3JtYXR0aW5nLiBNYWtpbmcgdGhpcyB0ZXN0IGxlc3Mgc3BlY2lmaWNcbiAgICBleHBlY3QoZGVwbG95T3V0cHV0KS50b01hdGNoKC9ob3Rzd2FwcGVkIS8pO1xuICAgIGV4cGVjdChkZXBsb3lPdXRwdXQpLnRvQ29udGFpbihzZXJ2aWNlTmFtZSk7XG4gIH0pLFxuKTtcblxuIl19
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { DescribeStacksCommand } from '@aws-sdk/client-cloudformation';
|
|
2
|
+
import { integTest, withDefaultFixture } from '../../lib';
|
|
3
|
+
|
|
4
|
+
jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-case single-threaded runtime
|
|
5
|
+
|
|
6
|
+
integTest(
|
|
7
|
+
'hotswap deployment supports ecs service',
|
|
8
|
+
withDefaultFixture(async (fixture) => {
|
|
9
|
+
// GIVEN
|
|
10
|
+
const stackArn = await fixture.cdkDeploy('ecs-hotswap', {
|
|
11
|
+
captureStderr: false,
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
// WHEN
|
|
15
|
+
const deployOutput = await fixture.cdkDeploy('ecs-hotswap', {
|
|
16
|
+
options: ['--hotswap'],
|
|
17
|
+
captureStderr: true,
|
|
18
|
+
onlyStderr: true,
|
|
19
|
+
modEnv: {
|
|
20
|
+
DYNAMIC_ECS_PROPERTY_VALUE: 'new value',
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
const response = await fixture.aws.cloudFormation.send(
|
|
25
|
+
new DescribeStacksCommand({
|
|
26
|
+
StackName: stackArn,
|
|
27
|
+
}),
|
|
28
|
+
);
|
|
29
|
+
const serviceName = response.Stacks?.[0].Outputs?.find((output) => output.OutputKey == 'ServiceName')?.OutputValue;
|
|
30
|
+
|
|
31
|
+
// THEN
|
|
32
|
+
|
|
33
|
+
// The deployment should not trigger a full deployment, thus the stack's status must remains
|
|
34
|
+
// "CREATE_COMPLETE"
|
|
35
|
+
expect(response.Stacks?.[0].StackStatus).toEqual('CREATE_COMPLETE');
|
|
36
|
+
// The entire string fails locally due to formatting. Making this test less specific
|
|
37
|
+
expect(deployOutput).toMatch(/hotswapped!/);
|
|
38
|
+
expect(deployOutput).toContain(serviceName);
|
|
39
|
+
}),
|
|
40
|
+
);
|
|
41
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-fn::importvalue-intrinsic.integtest.js
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const client_cloudformation_1 = require("@aws-sdk/client-cloudformation");
|
|
4
|
+
const lib_1 = require("../../lib");
|
|
5
|
+
jest.setTimeout(2 * 60 * 60000); // Includes the time to acquire locks, worst-case single-threaded runtime
|
|
6
|
+
(0, lib_1.integTest)('hotswap deployment supports Fn::ImportValue intrinsic', (0, lib_1.withDefaultFixture)(async (fixture) => {
|
|
7
|
+
var _a, _b, _c;
|
|
8
|
+
// GIVEN
|
|
9
|
+
try {
|
|
10
|
+
await fixture.cdkDeploy('export-value-stack');
|
|
11
|
+
const stackArn = await fixture.cdkDeploy('lambda-hotswap', {
|
|
12
|
+
captureStderr: false,
|
|
13
|
+
modEnv: {
|
|
14
|
+
DYNAMIC_LAMBDA_PROPERTY_VALUE: 'original value',
|
|
15
|
+
USE_IMPORT_VALUE_LAMBDA_PROPERTY: 'true',
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
// WHEN
|
|
19
|
+
const deployOutput = await fixture.cdkDeploy('lambda-hotswap', {
|
|
20
|
+
options: ['--hotswap'],
|
|
21
|
+
captureStderr: true,
|
|
22
|
+
onlyStderr: true,
|
|
23
|
+
modEnv: {
|
|
24
|
+
DYNAMIC_LAMBDA_PROPERTY_VALUE: 'new value',
|
|
25
|
+
USE_IMPORT_VALUE_LAMBDA_PROPERTY: 'true',
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
const response = await fixture.aws.cloudFormation.send(new client_cloudformation_1.DescribeStacksCommand({
|
|
29
|
+
StackName: stackArn,
|
|
30
|
+
}));
|
|
31
|
+
const functionName = (_b = (_a = response.Stacks) === null || _a === void 0 ? void 0 : _a[0].Outputs) === null || _b === void 0 ? void 0 : _b[0].OutputValue;
|
|
32
|
+
// THEN
|
|
33
|
+
// The deployment should not trigger a full deployment, thus the stack's status must remains
|
|
34
|
+
// "CREATE_COMPLETE"
|
|
35
|
+
expect((_c = response.Stacks) === null || _c === void 0 ? void 0 : _c[0].StackStatus).toEqual('CREATE_COMPLETE');
|
|
36
|
+
// The entire string fails locally due to formatting. Making this test less specific
|
|
37
|
+
expect(deployOutput).toMatch(/hotswapped!/);
|
|
38
|
+
expect(deployOutput).toContain(functionName);
|
|
39
|
+
}
|
|
40
|
+
finally {
|
|
41
|
+
// Ensure cleanup in reverse order due to use of import/export
|
|
42
|
+
await fixture.cdkDestroy('lambda-hotswap');
|
|
43
|
+
await fixture.cdkDestroy('export-value-stack');
|
|
44
|
+
}
|
|
45
|
+
}));
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWhvdHN3YXAtZGVwbG95bWVudC1zdXBwb3J0cy1mbjo6aW1wb3J0dmFsdWUtaW50cmluc2ljLmludGVndGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNkay1ob3Rzd2FwLWRlcGxveW1lbnQtc3VwcG9ydHMtZm46OmltcG9ydHZhbHVlLWludHJpbnNpYy5pbnRlZ3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwwRUFBdUU7QUFDdkUsbUNBQTBEO0FBRTFELElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxLQUFNLENBQUMsQ0FBQyxDQUFDLHlFQUF5RTtBQUUzRyxJQUFBLGVBQVMsRUFDUCx1REFBdUQsRUFDdkQsSUFBQSx3QkFBa0IsRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7O0lBQ25DLFFBQVE7SUFDUixJQUFJLENBQUM7UUFDSCxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUM5QyxNQUFNLFFBQVEsR0FBRyxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEVBQUU7WUFDekQsYUFBYSxFQUFFLEtBQUs7WUFDcEIsTUFBTSxFQUFFO2dCQUNOLDZCQUE2QixFQUFFLGdCQUFnQjtnQkFDL0MsZ0NBQWdDLEVBQUUsTUFBTTthQUN6QztTQUNGLENBQUMsQ0FBQztRQUVILE9BQU87UUFDUCxNQUFNLFlBQVksR0FBRyxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEVBQUU7WUFDN0QsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUFDO1lBQ3RCLGFBQWEsRUFBRSxJQUFJO1lBQ25CLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLE1BQU0sRUFBRTtnQkFDTiw2QkFBNkIsRUFBRSxXQUFXO2dCQUMxQyxnQ0FBZ0MsRUFBRSxNQUFNO2FBQ3pDO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQ3BELElBQUksNkNBQXFCLENBQUM7WUFDeEIsU0FBUyxFQUFFLFFBQVE7U0FDcEIsQ0FBQyxDQUNILENBQUM7UUFDRixNQUFNLFlBQVksR0FBRyxNQUFBLE1BQUEsUUFBUSxDQUFDLE1BQU0sMENBQUcsQ0FBQyxFQUFFLE9BQU8sMENBQUcsQ0FBQyxFQUFFLFdBQVcsQ0FBQztRQUVuRSxPQUFPO1FBRVAsNEZBQTRGO1FBQzVGLG9CQUFvQjtRQUNwQixNQUFNLENBQUMsTUFBQSxRQUFRLENBQUMsTUFBTSwwQ0FBRyxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDcEUsb0ZBQW9GO1FBQ3BGLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDNUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMvQyxDQUFDO1lBQVMsQ0FBQztRQUNULDhEQUE4RDtRQUM5RCxNQUFNLE9BQU8sQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUMzQyxNQUFNLE9BQU8sQ0FBQyxVQUFVLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUNqRCxDQUFDO0FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc2NyaWJlU3RhY2tzQ29tbWFuZCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgeyBpbnRlZ1Rlc3QsIHdpdGhEZWZhdWx0Rml4dHVyZSB9IGZyb20gJy4uLy4uL2xpYic7XG5cbmplc3Quc2V0VGltZW91dCgyICogNjAgKiA2MF8wMDApOyAvLyBJbmNsdWRlcyB0aGUgdGltZSB0byBhY3F1aXJlIGxvY2tzLCB3b3JzdC1jYXNlIHNpbmdsZS10aHJlYWRlZCBydW50aW1lXG5cbmludGVnVGVzdChcbiAgJ2hvdHN3YXAgZGVwbG95bWVudCBzdXBwb3J0cyBGbjo6SW1wb3J0VmFsdWUgaW50cmluc2ljJyxcbiAgd2l0aERlZmF1bHRGaXh0dXJlKGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gICAgLy8gR0lWRU5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgZml4dHVyZS5jZGtEZXBsb3koJ2V4cG9ydC12YWx1ZS1zdGFjaycpO1xuICAgICAgY29uc3Qgc3RhY2tBcm4gPSBhd2FpdCBmaXh0dXJlLmNka0RlcGxveSgnbGFtYmRhLWhvdHN3YXAnLCB7XG4gICAgICAgIGNhcHR1cmVTdGRlcnI6IGZhbHNlLFxuICAgICAgICBtb2RFbnY6IHtcbiAgICAgICAgICBEWU5BTUlDX0xBTUJEQV9QUk9QRVJUWV9WQUxVRTogJ29yaWdpbmFsIHZhbHVlJyxcbiAgICAgICAgICBVU0VfSU1QT1JUX1ZBTFVFX0xBTUJEQV9QUk9QRVJUWTogJ3RydWUnLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIC8vIFdIRU5cbiAgICAgIGNvbnN0IGRlcGxveU91dHB1dCA9IGF3YWl0IGZpeHR1cmUuY2RrRGVwbG95KCdsYW1iZGEtaG90c3dhcCcsIHtcbiAgICAgICAgb3B0aW9uczogWyctLWhvdHN3YXAnXSxcbiAgICAgICAgY2FwdHVyZVN0ZGVycjogdHJ1ZSxcbiAgICAgICAgb25seVN0ZGVycjogdHJ1ZSxcbiAgICAgICAgbW9kRW52OiB7XG4gICAgICAgICAgRFlOQU1JQ19MQU1CREFfUFJPUEVSVFlfVkFMVUU6ICduZXcgdmFsdWUnLFxuICAgICAgICAgIFVTRV9JTVBPUlRfVkFMVUVfTEFNQkRBX1BST1BFUlRZOiAndHJ1ZScsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmaXh0dXJlLmF3cy5jbG91ZEZvcm1hdGlvbi5zZW5kKFxuICAgICAgICBuZXcgRGVzY3JpYmVTdGFja3NDb21tYW5kKHtcbiAgICAgICAgICBTdGFja05hbWU6IHN0YWNrQXJuLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgICBjb25zdCBmdW5jdGlvbk5hbWUgPSByZXNwb25zZS5TdGFja3M/LlswXS5PdXRwdXRzPy5bMF0uT3V0cHV0VmFsdWU7XG5cbiAgICAgIC8vIFRIRU5cblxuICAgICAgLy8gVGhlIGRlcGxveW1lbnQgc2hvdWxkIG5vdCB0cmlnZ2VyIGEgZnVsbCBkZXBsb3ltZW50LCB0aHVzIHRoZSBzdGFjaydzIHN0YXR1cyBtdXN0IHJlbWFpbnNcbiAgICAgIC8vIFwiQ1JFQVRFX0NPTVBMRVRFXCJcbiAgICAgIGV4cGVjdChyZXNwb25zZS5TdGFja3M/LlswXS5TdGFja1N0YXR1cykudG9FcXVhbCgnQ1JFQVRFX0NPTVBMRVRFJyk7XG4gICAgICAvLyBUaGUgZW50aXJlIHN0cmluZyBmYWlscyBsb2NhbGx5IGR1ZSB0byBmb3JtYXR0aW5nLiBNYWtpbmcgdGhpcyB0ZXN0IGxlc3Mgc3BlY2lmaWNcbiAgICAgIGV4cGVjdChkZXBsb3lPdXRwdXQpLnRvTWF0Y2goL2hvdHN3YXBwZWQhLyk7XG4gICAgICBleHBlY3QoZGVwbG95T3V0cHV0KS50b0NvbnRhaW4oZnVuY3Rpb25OYW1lKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgLy8gRW5zdXJlIGNsZWFudXAgaW4gcmV2ZXJzZSBvcmRlciBkdWUgdG8gdXNlIG9mIGltcG9ydC9leHBvcnRcbiAgICAgIGF3YWl0IGZpeHR1cmUuY2RrRGVzdHJveSgnbGFtYmRhLWhvdHN3YXAnKTtcbiAgICAgIGF3YWl0IGZpeHR1cmUuY2RrRGVzdHJveSgnZXhwb3J0LXZhbHVlLXN0YWNrJyk7XG4gICAgfVxuICB9KSxcbik7XG5cbiJdfQ==
|
package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-fn::importvalue-intrinsic.integtest.ts
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { DescribeStacksCommand } from '@aws-sdk/client-cloudformation';
|
|
2
|
+
import { integTest, withDefaultFixture } from '../../lib';
|
|
3
|
+
|
|
4
|
+
jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-case single-threaded runtime
|
|
5
|
+
|
|
6
|
+
integTest(
|
|
7
|
+
'hotswap deployment supports Fn::ImportValue intrinsic',
|
|
8
|
+
withDefaultFixture(async (fixture) => {
|
|
9
|
+
// GIVEN
|
|
10
|
+
try {
|
|
11
|
+
await fixture.cdkDeploy('export-value-stack');
|
|
12
|
+
const stackArn = await fixture.cdkDeploy('lambda-hotswap', {
|
|
13
|
+
captureStderr: false,
|
|
14
|
+
modEnv: {
|
|
15
|
+
DYNAMIC_LAMBDA_PROPERTY_VALUE: 'original value',
|
|
16
|
+
USE_IMPORT_VALUE_LAMBDA_PROPERTY: 'true',
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
// WHEN
|
|
21
|
+
const deployOutput = await fixture.cdkDeploy('lambda-hotswap', {
|
|
22
|
+
options: ['--hotswap'],
|
|
23
|
+
captureStderr: true,
|
|
24
|
+
onlyStderr: true,
|
|
25
|
+
modEnv: {
|
|
26
|
+
DYNAMIC_LAMBDA_PROPERTY_VALUE: 'new value',
|
|
27
|
+
USE_IMPORT_VALUE_LAMBDA_PROPERTY: 'true',
|
|
28
|
+
},
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
const response = await fixture.aws.cloudFormation.send(
|
|
32
|
+
new DescribeStacksCommand({
|
|
33
|
+
StackName: stackArn,
|
|
34
|
+
}),
|
|
35
|
+
);
|
|
36
|
+
const functionName = response.Stacks?.[0].Outputs?.[0].OutputValue;
|
|
37
|
+
|
|
38
|
+
// THEN
|
|
39
|
+
|
|
40
|
+
// The deployment should not trigger a full deployment, thus the stack's status must remains
|
|
41
|
+
// "CREATE_COMPLETE"
|
|
42
|
+
expect(response.Stacks?.[0].StackStatus).toEqual('CREATE_COMPLETE');
|
|
43
|
+
// The entire string fails locally due to formatting. Making this test less specific
|
|
44
|
+
expect(deployOutput).toMatch(/hotswapped!/);
|
|
45
|
+
expect(deployOutput).toContain(functionName);
|
|
46
|
+
} finally {
|
|
47
|
+
// Ensure cleanup in reverse order due to use of import/export
|
|
48
|
+
await fixture.cdkDestroy('lambda-hotswap');
|
|
49
|
+
await fixture.cdkDestroy('export-value-stack');
|
|
50
|
+
}
|
|
51
|
+
}),
|
|
52
|
+
);
|
|
53
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const client_cloudformation_1 = require("@aws-sdk/client-cloudformation");
|
|
4
|
+
const lib_1 = require("../../lib");
|
|
5
|
+
jest.setTimeout(2 * 60 * 60000); // Includes the time to acquire locks, worst-case single-threaded runtime
|
|
6
|
+
(0, lib_1.integTest)("hotswap deployment supports Lambda function's description and environment variables", (0, lib_1.withDefaultFixture)(async (fixture) => {
|
|
7
|
+
var _a, _b, _c;
|
|
8
|
+
// GIVEN
|
|
9
|
+
const stackArn = await fixture.cdkDeploy('lambda-hotswap', {
|
|
10
|
+
captureStderr: false,
|
|
11
|
+
modEnv: {
|
|
12
|
+
DYNAMIC_LAMBDA_PROPERTY_VALUE: 'original value',
|
|
13
|
+
},
|
|
14
|
+
});
|
|
15
|
+
// WHEN
|
|
16
|
+
const deployOutput = await fixture.cdkDeploy('lambda-hotswap', {
|
|
17
|
+
options: ['--hotswap'],
|
|
18
|
+
captureStderr: true,
|
|
19
|
+
onlyStderr: true,
|
|
20
|
+
modEnv: {
|
|
21
|
+
DYNAMIC_LAMBDA_PROPERTY_VALUE: 'new value',
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
const response = await fixture.aws.cloudFormation.send(new client_cloudformation_1.DescribeStacksCommand({
|
|
25
|
+
StackName: stackArn,
|
|
26
|
+
}));
|
|
27
|
+
const functionName = (_b = (_a = response.Stacks) === null || _a === void 0 ? void 0 : _a[0].Outputs) === null || _b === void 0 ? void 0 : _b[0].OutputValue;
|
|
28
|
+
// THEN
|
|
29
|
+
// The deployment should not trigger a full deployment, thus the stack's status must remains
|
|
30
|
+
// "CREATE_COMPLETE"
|
|
31
|
+
expect((_c = response.Stacks) === null || _c === void 0 ? void 0 : _c[0].StackStatus).toEqual('CREATE_COMPLETE');
|
|
32
|
+
// The entire string fails locally due to formatting. Making this test less specific
|
|
33
|
+
expect(deployOutput).toMatch(/hotswapped!/);
|
|
34
|
+
expect(deployOutput).toContain(functionName);
|
|
35
|
+
}));
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWhvdHN3YXAtZGVwbG95bWVudC1zdXBwb3J0cy1sYW1iZGEtZnVuY3Rpb25zLWRlc2NyaXB0aW9uLWFuZC1lbnZpcm9ubWVudC12YXJpYWJsZXMuaW50ZWd0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2RrLWhvdHN3YXAtZGVwbG95bWVudC1zdXBwb3J0cy1sYW1iZGEtZnVuY3Rpb25zLWRlc2NyaXB0aW9uLWFuZC1lbnZpcm9ubWVudC12YXJpYWJsZXMuaW50ZWd0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMEVBQXVFO0FBQ3ZFLG1DQUEwRDtBQUUxRCxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBTSxDQUFDLENBQUMsQ0FBQyx5RUFBeUU7QUFFM0csSUFBQSxlQUFTLEVBQ1AscUZBQXFGLEVBQ3JGLElBQUEsd0JBQWtCLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFOztJQUNuQyxRQUFRO0lBQ1IsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsU0FBUyxDQUFDLGdCQUFnQixFQUFFO1FBQ3pELGFBQWEsRUFBRSxLQUFLO1FBQ3BCLE1BQU0sRUFBRTtZQUNOLDZCQUE2QixFQUFFLGdCQUFnQjtTQUNoRDtLQUNGLENBQUMsQ0FBQztJQUVILE9BQU87SUFDUCxNQUFNLFlBQVksR0FBRyxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEVBQUU7UUFDN0QsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUFDO1FBQ3RCLGFBQWEsRUFBRSxJQUFJO1FBQ25CLFVBQVUsRUFBRSxJQUFJO1FBQ2hCLE1BQU0sRUFBRTtZQUNOLDZCQUE2QixFQUFFLFdBQVc7U0FDM0M7S0FDRixDQUFDLENBQUM7SUFFSCxNQUFNLFFBQVEsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDcEQsSUFBSSw2Q0FBcUIsQ0FBQztRQUN4QixTQUFTLEVBQUUsUUFBUTtLQUNwQixDQUFDLENBQ0gsQ0FBQztJQUNGLE1BQU0sWUFBWSxHQUFHLE1BQUEsTUFBQSxRQUFRLENBQUMsTUFBTSwwQ0FBRyxDQUFDLEVBQUUsT0FBTywwQ0FBRyxDQUFDLEVBQUUsV0FBVyxDQUFDO0lBRW5FLE9BQU87SUFDUCw0RkFBNEY7SUFDNUYsb0JBQW9CO0lBQ3BCLE1BQU0sQ0FBQyxNQUFBLFFBQVEsQ0FBQyxNQUFNLDBDQUFHLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNwRSxvRkFBb0Y7SUFDcEYsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM1QyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQy9DLENBQUMsQ0FBQyxDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXNjcmliZVN0YWNrc0NvbW1hbmQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0IHsgaW50ZWdUZXN0LCB3aXRoRGVmYXVsdEZpeHR1cmUgfSBmcm9tICcuLi8uLi9saWInO1xuXG5qZXN0LnNldFRpbWVvdXQoMiAqIDYwICogNjBfMDAwKTsgLy8gSW5jbHVkZXMgdGhlIHRpbWUgdG8gYWNxdWlyZSBsb2Nrcywgd29yc3QtY2FzZSBzaW5nbGUtdGhyZWFkZWQgcnVudGltZVxuXG5pbnRlZ1Rlc3QoXG4gIFwiaG90c3dhcCBkZXBsb3ltZW50IHN1cHBvcnRzIExhbWJkYSBmdW5jdGlvbidzIGRlc2NyaXB0aW9uIGFuZCBlbnZpcm9ubWVudCB2YXJpYWJsZXNcIixcbiAgd2l0aERlZmF1bHRGaXh0dXJlKGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gICAgLy8gR0lWRU5cbiAgICBjb25zdCBzdGFja0FybiA9IGF3YWl0IGZpeHR1cmUuY2RrRGVwbG95KCdsYW1iZGEtaG90c3dhcCcsIHtcbiAgICAgIGNhcHR1cmVTdGRlcnI6IGZhbHNlLFxuICAgICAgbW9kRW52OiB7XG4gICAgICAgIERZTkFNSUNfTEFNQkRBX1BST1BFUlRZX1ZBTFVFOiAnb3JpZ2luYWwgdmFsdWUnLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIFdIRU5cbiAgICBjb25zdCBkZXBsb3lPdXRwdXQgPSBhd2FpdCBmaXh0dXJlLmNka0RlcGxveSgnbGFtYmRhLWhvdHN3YXAnLCB7XG4gICAgICBvcHRpb25zOiBbJy0taG90c3dhcCddLFxuICAgICAgY2FwdHVyZVN0ZGVycjogdHJ1ZSxcbiAgICAgIG9ubHlTdGRlcnI6IHRydWUsXG4gICAgICBtb2RFbnY6IHtcbiAgICAgICAgRFlOQU1JQ19MQU1CREFfUFJPUEVSVFlfVkFMVUU6ICduZXcgdmFsdWUnLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZml4dHVyZS5hd3MuY2xvdWRGb3JtYXRpb24uc2VuZChcbiAgICAgIG5ldyBEZXNjcmliZVN0YWNrc0NvbW1hbmQoe1xuICAgICAgICBTdGFja05hbWU6IHN0YWNrQXJuLFxuICAgICAgfSksXG4gICAgKTtcbiAgICBjb25zdCBmdW5jdGlvbk5hbWUgPSByZXNwb25zZS5TdGFja3M/LlswXS5PdXRwdXRzPy5bMF0uT3V0cHV0VmFsdWU7XG5cbiAgICAvLyBUSEVOXG4gICAgLy8gVGhlIGRlcGxveW1lbnQgc2hvdWxkIG5vdCB0cmlnZ2VyIGEgZnVsbCBkZXBsb3ltZW50LCB0aHVzIHRoZSBzdGFjaydzIHN0YXR1cyBtdXN0IHJlbWFpbnNcbiAgICAvLyBcIkNSRUFURV9DT01QTEVURVwiXG4gICAgZXhwZWN0KHJlc3BvbnNlLlN0YWNrcz8uWzBdLlN0YWNrU3RhdHVzKS50b0VxdWFsKCdDUkVBVEVfQ09NUExFVEUnKTtcbiAgICAvLyBUaGUgZW50aXJlIHN0cmluZyBmYWlscyBsb2NhbGx5IGR1ZSB0byBmb3JtYXR0aW5nLiBNYWtpbmcgdGhpcyB0ZXN0IGxlc3Mgc3BlY2lmaWNcbiAgICBleHBlY3QoZGVwbG95T3V0cHV0KS50b01hdGNoKC9ob3Rzd2FwcGVkIS8pO1xuICAgIGV4cGVjdChkZXBsb3lPdXRwdXQpLnRvQ29udGFpbihmdW5jdGlvbk5hbWUpO1xuICB9KSxcbik7XG5cbiJdfQ==
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { DescribeStacksCommand } from '@aws-sdk/client-cloudformation';
|
|
2
|
+
import { integTest, withDefaultFixture } from '../../lib';
|
|
3
|
+
|
|
4
|
+
jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-case single-threaded runtime
|
|
5
|
+
|
|
6
|
+
integTest(
|
|
7
|
+
"hotswap deployment supports Lambda function's description and environment variables",
|
|
8
|
+
withDefaultFixture(async (fixture) => {
|
|
9
|
+
// GIVEN
|
|
10
|
+
const stackArn = await fixture.cdkDeploy('lambda-hotswap', {
|
|
11
|
+
captureStderr: false,
|
|
12
|
+
modEnv: {
|
|
13
|
+
DYNAMIC_LAMBDA_PROPERTY_VALUE: 'original value',
|
|
14
|
+
},
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
// WHEN
|
|
18
|
+
const deployOutput = await fixture.cdkDeploy('lambda-hotswap', {
|
|
19
|
+
options: ['--hotswap'],
|
|
20
|
+
captureStderr: true,
|
|
21
|
+
onlyStderr: true,
|
|
22
|
+
modEnv: {
|
|
23
|
+
DYNAMIC_LAMBDA_PROPERTY_VALUE: 'new value',
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
const response = await fixture.aws.cloudFormation.send(
|
|
28
|
+
new DescribeStacksCommand({
|
|
29
|
+
StackName: stackArn,
|
|
30
|
+
}),
|
|
31
|
+
);
|
|
32
|
+
const functionName = response.Stacks?.[0].Outputs?.[0].OutputValue;
|
|
33
|
+
|
|
34
|
+
// THEN
|
|
35
|
+
// The deployment should not trigger a full deployment, thus the stack's status must remains
|
|
36
|
+
// "CREATE_COMPLETE"
|
|
37
|
+
expect(response.Stacks?.[0].StackStatus).toEqual('CREATE_COMPLETE');
|
|
38
|
+
// The entire string fails locally due to formatting. Making this test less specific
|
|
39
|
+
expect(deployOutput).toMatch(/hotswapped!/);
|
|
40
|
+
expect(deployOutput).toContain(functionName);
|
|
41
|
+
}),
|
|
42
|
+
);
|
|
43
|
+
|
package/tests/cli-integ-tests/cdk-hotswap-ecs-deployment-respects-properties-override.integtest.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|