@aws-cdk-testing/cli-integ 3.5.0 → 3.6.0

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.
Files changed (307) hide show
  1. package/lib/aws.js +6 -9
  2. package/lib/cli/query-github.js +2 -3
  3. package/lib/cli/run-suite.js +2 -3
  4. package/lib/cli/stage-distribution.js +4 -4
  5. package/lib/eventually.js +3 -3
  6. package/lib/files.js +2 -3
  7. package/lib/github.js +5 -6
  8. package/lib/integ-test.js +58 -3
  9. package/lib/package-sources/release-source.d.ts +1 -1
  10. package/lib/package-sources/release-source.js +2 -3
  11. package/lib/package-sources/repo-source.d.ts +1 -1
  12. package/lib/package-sources/repo-source.js +1 -1
  13. package/lib/package-sources/repo-tools/npm.js +4 -5
  14. package/lib/package-sources/subprocess.d.ts +1 -1
  15. package/lib/package-sources/subprocess.js +1 -1
  16. package/lib/process.js +5 -6
  17. package/lib/proxy.d.ts +1 -1
  18. package/lib/proxy.js +2 -2
  19. package/lib/resource-pool.js +5 -3
  20. package/lib/shell.d.ts +3 -3
  21. package/lib/shell.js +8 -12
  22. package/lib/staging/codeartifact.js +8 -11
  23. package/lib/staging/maven.d.ts +2 -2
  24. package/lib/staging/maven.js +3 -5
  25. package/lib/staging/npm.d.ts +2 -2
  26. package/lib/staging/npm.js +1 -1
  27. package/lib/staging/nuget.d.ts +2 -2
  28. package/lib/staging/nuget.js +1 -1
  29. package/lib/staging/parallel-shell.js +2 -2
  30. package/lib/staging/pypi.d.ts +2 -2
  31. package/lib/staging/pypi.js +1 -1
  32. package/lib/with-aws.d.ts +2 -2
  33. package/lib/with-aws.js +5 -4
  34. package/lib/with-cdk-app.d.ts +7 -5
  35. package/lib/with-cdk-app.js +28 -33
  36. package/lib/with-cli-lib.d.ts +4 -3
  37. package/lib/with-cli-lib.js +1 -1
  38. package/lib/with-packages.d.ts +1 -1
  39. package/lib/with-packages.js +1 -1
  40. package/lib/with-sam.d.ts +3 -3
  41. package/lib/with-sam.js +4 -7
  42. package/lib/with-temporary-directory.d.ts +1 -1
  43. package/lib/with-temporary-directory.js +1 -1
  44. package/lib/xpmutex.js +5 -3
  45. package/npm-shrinkwrap.json +8722 -0
  46. package/package.json +11 -7
  47. package/resources/cdk-apps/refactoring/cdk.json +7 -0
  48. package/resources/cdk-apps/refactoring/refactoring.js +18 -0
  49. package/test-reports/junit.xml +15 -0
  50. package/tests/cli-integ-tests/cdk-assets/cdk-assets-uses-profile.integtest.js +11 -11
  51. package/tests/cli-integ-tests/cdk-assets/smoketest.integtest.js +9 -9
  52. package/tests/cli-integ-tests/cdk-bootstrap-add-tags.integtest.js +2 -3
  53. package/tests/cli-integ-tests/cdk-bootstrap-can-add-tags-then-update-tags-during-re-bootstrap.integtest.js +2 -3
  54. package/tests/cli-integ-tests/cdk-bootstrap-can-bootstrap-without-execution.integtest.js +2 -3
  55. package/tests/cli-integ-tests/cdk-bootstrap-can-create-a-legacy-bootstrap-stack-with---public-access-block-configuration-false.integtest.js +2 -3
  56. package/tests/cli-integ-tests/cdk-bootstrap-can-create-multiple-legacy-bootstrap-stacks.integtest.js +2 -3
  57. package/tests/cli-integ-tests/cdk-bootstrap-can-remove-custompermissionsboundary.integtest.js +4 -6
  58. package/tests/cli-integ-tests/cdk-bootstrap-can-remove-trusted-account.integtest.js +2 -3
  59. package/tests/cli-integ-tests/cdk-bootstrap-create-ecr-with-tag-immutability-to-set-on.integtest.js +4 -5
  60. package/tests/cli-integ-tests/cdk-bootstrap-switch-on-termination-protection.integtest.js +2 -3
  61. package/tests/cli-integ-tests/cdk-ci-true-output-to-stdout.integtest.js +1 -1
  62. package/tests/cli-integ-tests/cdk-deploy---method-direct.integtest.js +2 -3
  63. package/tests/cli-integ-tests/cdk-deploy-and-test-stack-with-lambda-asset.integtest.js +3 -4
  64. package/tests/cli-integ-tests/cdk-deploy-deletes-all-notification-arns-when-empty-array-is-passed.integtest.js +3 -4
  65. package/tests/cli-integ-tests/cdk-deploy-preserves-existing-notification-arns-when-not-specified.integtest.js +2 -3
  66. package/tests/cli-integ-tests/cdk-deploy-with-import-existing-resources-true.integtest.js +2 -3
  67. package/tests/cli-integ-tests/cdk-deploy-with-notification-arn-as-flag.integtest.js +2 -3
  68. package/tests/cli-integ-tests/cdk-deploy-with-notification-arn-as-prop-and-flag.integtest.js +2 -3
  69. package/tests/cli-integ-tests/cdk-deploy-with-notification-arn-as-prop.integtest.js +2 -3
  70. package/tests/cli-integ-tests/cdk-deploy-with-parameters-multi.integtest.js +3 -4
  71. package/tests/cli-integ-tests/cdk-deploy-with-parameters.integtest.js +2 -3
  72. package/tests/cli-integ-tests/cdk-deploy-without-execute-a-named-change-set.integtest.js +2 -3
  73. package/tests/cli-integ-tests/cdk-deploy-without-import-existing-resources.integtest.js +2 -3
  74. package/tests/cli-integ-tests/cdk-deploy.integtest.js +2 -3
  75. package/tests/cli-integ-tests/cdk-destroy-interactive.integtest.js +6 -7
  76. package/tests/cli-integ-tests/cdk-fast-deploy.integtest.js +4 -5
  77. package/tests/cli-integ-tests/cdk-gc-garbage-collection-untags-in-use-s3-objects.integtest.js +2 -2
  78. package/tests/cli-integ-tests/cdk-hotswap-deployment-for-ecs-service-waits-for-deployment-to-complete.integtest.js +6 -5
  79. package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-appsync-apis-with-many-functions.integtest.js +2 -3
  80. package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-ecs-service.integtest.js +3 -4
  81. package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-fn::importvalue-intrinsic.integtest.js +3 -4
  82. package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-lambda-functions-description-and-environment-variables.integtest.js +3 -4
  83. package/tests/cli-integ-tests/cdk-hotswap-ecs-deployment-respects-properties-override.integtest.js +5 -6
  84. package/tests/cli-integ-tests/cdk-import-interactive.integtest.js +5 -6
  85. package/tests/cli-integ-tests/cdk-lib-cli-lib-deploy.integtest.js +2 -3
  86. package/tests/cli-integ-tests/cdk-lib-security-related-changes-without-a-cli-are-expected-to-fail-when-approval-is-required.integtest.js +1 -2
  87. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-csharp.integtest.js +1 -1
  88. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-java.integtest.js +1 -1
  89. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-python.integtest.js +1 -1
  90. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-typescript.integtest.js +1 -1
  91. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-csharp.integtest.js +1 -1
  92. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-java.integtest.js +1 -1
  93. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-python.integtest.js +1 -1
  94. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-typescript.integtest.js +1 -1
  95. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-generates-migrate.json.integtest.js +1 -1
  96. package/tests/cli-integ-tests/cdk-migrate/testcase.d.ts +1 -1
  97. package/tests/cli-integ-tests/cdk-migrate/testcase.js +4 -6
  98. package/tests/cli-integ-tests/cdk-nested-stack-with-parameters.integtest.js +2 -3
  99. package/tests/cli-integ-tests/cdk-refactor-dry-run.integtest.d.ts +1 -0
  100. package/tests/cli-integ-tests/cdk-refactor-dry-run.integtest.js +41 -0
  101. package/tests/cli-integ-tests/cdk-requests-go-through-a-proxy-when-configured.integtest.js +2 -3
  102. package/tests/cli-integ-tests/cdk-stack-in-update_rollback_complete-state-can-be-updated.integtest.js +5 -6
  103. package/tests/cli-integ-tests/cdk-test-migrate-deployment-for-app-with-localfile-source-in-migrate.json.integtest.js +4 -4
  104. package/tests/cli-integ-tests/cdk-update-to-stack-in-rollback_complete-state-will-delete-stack-and-create-a-new-one.integtest.js +5 -6
  105. package/tests/cli-integ-tests/proxy.integtest.js +2 -3
  106. package/tests/init-go/init-go.integtest.js +2 -3
  107. package/tests/init-typescript-app/init-typescript-app.integtest.js +1 -1
  108. package/tests/tool-integrations/amplify.integtest.js +4 -4
  109. package/tests/tool-integrations/with-tool-context.d.ts +5 -5
  110. package/tests/tool-integrations/with-tool-context.js +1 -1
  111. package/.eslintrc.js +0 -9
  112. package/lib/aws.ts +0 -303
  113. package/lib/cli/query-github.ts +0 -56
  114. package/lib/cli/run-suite.ts +0 -153
  115. package/lib/cli/stage-distribution.ts +0 -262
  116. package/lib/cli/test-root.ts +0 -3
  117. package/lib/corking.ts +0 -33
  118. package/lib/eventually.ts +0 -42
  119. package/lib/files.ts +0 -80
  120. package/lib/github.ts +0 -43
  121. package/lib/index.ts +0 -13
  122. package/lib/integ-test.ts +0 -110
  123. package/lib/lists.ts +0 -9
  124. package/lib/memoize.ts +0 -14
  125. package/lib/npm.ts +0 -41
  126. package/lib/package-sources/release-source.ts +0 -82
  127. package/lib/package-sources/repo-source.ts +0 -112
  128. package/lib/package-sources/repo-tools/npm.ts +0 -48
  129. package/lib/package-sources/source.ts +0 -35
  130. package/lib/package-sources/subprocess.ts +0 -15
  131. package/lib/process.ts +0 -154
  132. package/lib/proxy.ts +0 -64
  133. package/lib/resource-pool.ts +0 -140
  134. package/lib/resources.ts +0 -4
  135. package/lib/shell.ts +0 -331
  136. package/lib/staging/codeartifact.ts +0 -387
  137. package/lib/staging/maven.ts +0 -95
  138. package/lib/staging/npm.ts +0 -62
  139. package/lib/staging/nuget.ts +0 -75
  140. package/lib/staging/parallel-shell.ts +0 -51
  141. package/lib/staging/pypi.ts +0 -50
  142. package/lib/staging/usage-dir.ts +0 -99
  143. package/lib/with-aws.ts +0 -111
  144. package/lib/with-cdk-app.ts +0 -847
  145. package/lib/with-cli-lib.ts +0 -150
  146. package/lib/with-packages.ts +0 -15
  147. package/lib/with-sam.ts +0 -295
  148. package/lib/with-temporary-directory.ts +0 -35
  149. package/lib/with-timeout.ts +0 -33
  150. package/lib/xpmutex.ts +0 -218
  151. package/resources/cli-regression-patches/v2.130.0/node_modules/@aws-cdk-testing/cli-integ/resources/cdk-apps/sam_cdk_integ_app/lib/nested-stack.js +0 -19
  152. package/resources/cli-regression-patches/v2.130.0/node_modules/@aws-cdk-testing/cli-integ/resources/cdk-apps/sam_cdk_integ_app/lib/test-stack.js +0 -134
  153. package/tests/cli-integ-tests/cdk---exclusively-selects-only-selected-stack.integtest.ts +0 -29
  154. package/tests/cli-integ-tests/cdk-assets/cdk-assets-uses-profile.integtest.ts +0 -92
  155. package/tests/cli-integ-tests/cdk-assets/smoketest.integtest.ts +0 -82
  156. package/tests/cli-integ-tests/cdk-automatic-ordering-with-concurrency.integtest.ts +0 -15
  157. package/tests/cli-integ-tests/cdk-automatic-ordering.integtest.ts +0 -15
  158. package/tests/cli-integ-tests/cdk-automatic-rollback-if-paused-and---no-rollback-is-removed-from-flags.integtest.ts +0 -40
  159. package/tests/cli-integ-tests/cdk-automatic-rollback-if-paused-and-change-contains-a-replacement.integtest.ts +0 -40
  160. package/tests/cli-integ-tests/cdk-automatic-rollback-if-replacement-and---no-rollback-is-removed-from-flags.integtest.ts +0 -29
  161. package/tests/cli-integ-tests/cdk-bootstrap-a-customized-template-vendor-will-not-overwrite-the-default-template.integtest.ts +0 -42
  162. package/tests/cli-integ-tests/cdk-bootstrap-add-tags.integtest.ts +0 -26
  163. package/tests/cli-integ-tests/cdk-bootstrap-can-add-tags-then-update-tags-during-re-bootstrap.integtest.ts +0 -28
  164. package/tests/cli-integ-tests/cdk-bootstrap-can-and-deploy-if-omitting-execution-policies.integtest.ts +0 -21
  165. package/tests/cli-integ-tests/cdk-bootstrap-can-bootstrap-without-execution.integtest.ts +0 -22
  166. package/tests/cli-integ-tests/cdk-bootstrap-can-create-a-legacy-bootstrap-stack-with---public-access-block-configuration-false.integtest.ts +0 -21
  167. package/tests/cli-integ-tests/cdk-bootstrap-can-create-multiple-legacy-bootstrap-stacks.integtest.ts +0 -27
  168. package/tests/cli-integ-tests/cdk-bootstrap-can-deploy-modern-synthesized-stack-even-if-bootstrap-stack-name-is-unknown.integtest.ts +0 -24
  169. package/tests/cli-integ-tests/cdk-bootstrap-can-deploy-with-session-tags-on-the-deploy.integtest.ts +0 -25
  170. package/tests/cli-integ-tests/cdk-bootstrap-can-deploy-without-execution-role-and-with-session-tags-on-deploy-role.integtest.ts +0 -22
  171. package/tests/cli-integ-tests/cdk-bootstrap-can-dump-the-template.integtest.ts +0 -32
  172. package/tests/cli-integ-tests/cdk-bootstrap-can-remove-custompermissionsboundary.integtest.ts +0 -77
  173. package/tests/cli-integ-tests/cdk-bootstrap-can-remove-trusted-account.integtest.ts +0 -30
  174. package/tests/cli-integ-tests/cdk-bootstrap-can-use-the-custom-permissions-boundary-(with-slashes)-to-bootstrap.integtest.ts +0 -15
  175. package/tests/cli-integ-tests/cdk-bootstrap-can-use-the-custom-permissions-boundary-to-bootstrap.integtest.ts +0 -15
  176. package/tests/cli-integ-tests/cdk-bootstrap-can-use-the-default-permissions-boundary-to-bootstrap.integtest.ts +0 -15
  177. package/tests/cli-integ-tests/cdk-bootstrap-create-ecr-with-tag-immutability-to-set-on.integtest.ts +0 -34
  178. package/tests/cli-integ-tests/cdk-bootstrap-deploy-new-style-synthesis-to-new-style-bootstrap-(with-docker-image).integtest.ts +0 -22
  179. package/tests/cli-integ-tests/cdk-bootstrap-deploy-new-style-synthesis-to-new-style-bootstrap.integtest.ts +0 -22
  180. package/tests/cli-integ-tests/cdk-bootstrap-deploy-old-style-synthesis-to-new-style-bootstrap.integtest.ts +0 -21
  181. package/tests/cli-integ-tests/cdk-bootstrap-switch-on-termination-protection.integtest.ts +0 -24
  182. package/tests/cli-integ-tests/cdk-bootstrap-upgrade-legacy-bootstrap-stack-to-new-bootstrap-stack-while-in-use.integtest.ts +0 -47
  183. package/tests/cli-integ-tests/cdk-can-still-load-old-assemblies.integtest.ts +0 -57
  184. 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 +0 -22
  185. package/tests/cli-integ-tests/cdk-cdk-diff---fail-with-multiple-stack-exits-with-if-any-of-the-stacks-contains-a-diff.integtest.ts +0 -22
  186. 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 +0 -19
  187. package/tests/cli-integ-tests/cdk-cdk-diff---security-only---fail-exits-when-security-changes-are-present.integtest.ts +0 -14
  188. package/tests/cli-integ-tests/cdk-cdk-diff---security-only---fail-exits-when-security-diff-for-sso-access-control-config.integtest.ts +0 -13
  189. package/tests/cli-integ-tests/cdk-cdk-diff---security-only---fail-exits-when-security-diff-for-sso-assignment.integtest.ts +0 -13
  190. package/tests/cli-integ-tests/cdk-cdk-diff---security-only---fail-exits-when-security-diff-for-sso-perm-set-with-managed-policy.integtest.ts +0 -13
  191. package/tests/cli-integ-tests/cdk-cdk-diff---security-only---fail-exits-when-security-diff-for-sso-perm-set-without-managed-policy.integtest.ts +0 -13
  192. package/tests/cli-integ-tests/cdk-cdk-diff---security-only-successfully-outputs-sso-access-control-information.integtest.ts +0 -35
  193. package/tests/cli-integ-tests/cdk-cdk-diff---security-only-successfully-outputs-sso-assignment-information.integtest.ts +0 -37
  194. package/tests/cli-integ-tests/cdk-cdk-diff---security-only-successfully-outputs-sso-permission-set-with-managed-policy-information.integtest.ts +0 -35
  195. package/tests/cli-integ-tests/cdk-cdk-diff---security-only-successfully-outputs-sso-permission-set-without-managed-policy-information.integtest.ts +0 -37
  196. package/tests/cli-integ-tests/cdk-cdk-diff-doesnt-show-resource-metadata-changes.integtest.ts +0 -23
  197. package/tests/cli-integ-tests/cdk-cdk-diff-shows-resource-metadata-changes-with---no-change-set.integtest.ts +0 -23
  198. package/tests/cli-integ-tests/cdk-cdk-diff-with-large-changeset-and-custom-toolkit-stack-name-and-qualifier-does-not-fail.integtest.ts +0 -39
  199. package/tests/cli-integ-tests/cdk-cdk-diff-with-large-changeset-does-not-fail.integtest.ts +0 -28
  200. package/tests/cli-integ-tests/cdk-cdk-diff.integtest.ts +0 -18
  201. package/tests/cli-integ-tests/cdk-cdk-ls---show-dependencies---json---long.integtest.ts +0 -50
  202. package/tests/cli-integ-tests/cdk-cdk-ls---show-dependencies---json.integtest.ts +0 -95
  203. package/tests/cli-integ-tests/cdk-cdk-ls.integtest.ts +0 -36
  204. package/tests/cli-integ-tests/cdk-cdk-notices-are-displayed-correctly.integtest.ts +0 -42
  205. package/tests/cli-integ-tests/cdk-cdk-notices-with---unacknowledged.integtest.ts +0 -14
  206. package/tests/cli-integ-tests/cdk-cdk-synth-add-the-metadata-properties-expected-by-sam.integtest.ts +0 -126
  207. package/tests/cli-integ-tests/cdk-cdk-synth-bundled-functions-as-expected.integtest.ts +0 -80
  208. package/tests/cli-integ-tests/cdk-cdk-synth.integtest.ts +0 -53
  209. package/tests/cli-integ-tests/cdk-ci-output-to-stderr.integtest.ts +0 -19
  210. package/tests/cli-integ-tests/cdk-ci-true-output-to-stdout.integtest.ts +0 -28
  211. package/tests/cli-integ-tests/cdk-construct-with-builtin-lambda-function.integtest.ts +0 -14
  212. package/tests/cli-integ-tests/cdk-context-in-stage-propagates-to-top.integtest.ts +0 -20
  213. package/tests/cli-integ-tests/cdk-context-setting.integtest.ts +0 -33
  214. package/tests/cli-integ-tests/cdk-deploy---method-direct.integtest.ts +0 -23
  215. package/tests/cli-integ-tests/cdk-deploy-all-concurrently.integtest.ts +0 -17
  216. package/tests/cli-integ-tests/cdk-deploy-all.integtest.ts +0 -14
  217. package/tests/cli-integ-tests/cdk-deploy-and-test-stack-with-lambda-asset.integtest.ts +0 -31
  218. package/tests/cli-integ-tests/cdk-deploy-deletes-all-notification-arns-when-empty-array-is-passed.integtest.ts +0 -50
  219. package/tests/cli-integ-tests/cdk-deploy-no-stacks-error.integtest.ts +0 -18
  220. package/tests/cli-integ-tests/cdk-deploy-no-stacks-with---ignore-no-stacks.integtest.ts +0 -17
  221. package/tests/cli-integ-tests/cdk-deploy-preserves-existing-notification-arns-when-not-specified.integtest.ts +0 -51
  222. package/tests/cli-integ-tests/cdk-deploy-stack-with-docker-asset.integtest.ts +0 -11
  223. package/tests/cli-integ-tests/cdk-deploy-stack-with-lambda-asset-to-object-lock-enabled-asset-bucket.integtest.ts +0 -42
  224. package/tests/cli-integ-tests/cdk-deploy-stack-without-resource.integtest.ts +0 -32
  225. package/tests/cli-integ-tests/cdk-deploy-wildcard-with-outputs.integtest.ts +0 -28
  226. package/tests/cli-integ-tests/cdk-deploy-with-import-existing-resources-true.integtest.ts +0 -29
  227. package/tests/cli-integ-tests/cdk-deploy-with-method-direct-and-import-existing-resources-fails.integtest.ts +0 -17
  228. package/tests/cli-integ-tests/cdk-deploy-with-notification-arn-as-flag.integtest.ts +0 -36
  229. package/tests/cli-integ-tests/cdk-deploy-with-notification-arn-as-prop-and-flag.integtest.ts +0 -45
  230. package/tests/cli-integ-tests/cdk-deploy-with-notification-arn-as-prop.integtest.ts +0 -37
  231. package/tests/cli-integ-tests/cdk-deploy-with-parameters-multi.integtest.ts +0 -33
  232. package/tests/cli-integ-tests/cdk-deploy-with-parameters.integtest.ts +0 -26
  233. package/tests/cli-integ-tests/cdk-deploy-with-role.integtest.ts +0 -119
  234. package/tests/cli-integ-tests/cdk-deploy-with-wildcard-and-parameters.integtest.ts +0 -22
  235. package/tests/cli-integ-tests/cdk-deploy-without-execute-a-named-change-set.integtest.ts +0 -36
  236. package/tests/cli-integ-tests/cdk-deploy-without-import-existing-resources.integtest.ts +0 -28
  237. package/tests/cli-integ-tests/cdk-deploy.integtest.ts +0 -20
  238. package/tests/cli-integ-tests/cdk-destroy-interactive.integtest.ts +0 -36
  239. package/tests/cli-integ-tests/cdk-doubly-nested-stack.integtest.ts +0 -12
  240. package/tests/cli-integ-tests/cdk-enablediffnofail.integtest.ts +0 -44
  241. package/tests/cli-integ-tests/cdk-failed-deploy-does-not-hang.integtest.ts +0 -12
  242. package/tests/cli-integ-tests/cdk-fast-deploy.integtest.ts +0 -41
  243. package/tests/cli-integ-tests/cdk-gc-garbage-collection-deletes-unused-ecr-images.integtest.ts +0 -48
  244. package/tests/cli-integ-tests/cdk-gc-garbage-collection-deletes-unused-s3-objects.integtest.ts +0 -51
  245. package/tests/cli-integ-tests/cdk-gc-garbage-collection-keeps-in-use-ecr-images.integtest.ts +0 -48
  246. package/tests/cli-integ-tests/cdk-gc-garbage-collection-keeps-in-use-s3-objects.integtest.ts +0 -52
  247. package/tests/cli-integ-tests/cdk-gc-garbage-collection-tags-unused-ecr-images.integtest.ts +0 -47
  248. package/tests/cli-integ-tests/cdk-gc-garbage-collection-tags-unused-s3-objects.integtest.ts +0 -63
  249. package/tests/cli-integ-tests/cdk-gc-garbage-collection-untags-in-use-ecr-images.integtest.ts +0 -55
  250. package/tests/cli-integ-tests/cdk-gc-garbage-collection-untags-in-use-s3-objects.integtest.ts +0 -63
  251. package/tests/cli-integ-tests/cdk-generating-and-loading-assembly.integtest.ts +0 -52
  252. package/tests/cli-integ-tests/cdk-hotswap-deployment-for-ecs-service-detects-failed-deployment-and-errors.integtest.ts +0 -29
  253. package/tests/cli-integ-tests/cdk-hotswap-deployment-for-ecs-service-waits-for-deployment-to-complete.integtest.ts +0 -45
  254. package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-appsync-apis-with-many-functions.integtest.ts +0 -36
  255. package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-ecs-service.integtest.ts +0 -41
  256. package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-fn::importvalue-intrinsic.integtest.ts +0 -53
  257. package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-lambda-functions-description-and-environment-variables.integtest.ts +0 -43
  258. package/tests/cli-integ-tests/cdk-hotswap-ecs-deployment-respects-properties-override.integtest.ts +0 -59
  259. package/tests/cli-integ-tests/cdk-iam-diff.integtest.ts +0 -23
  260. package/tests/cli-integ-tests/cdk-import-interactive.integtest.ts +0 -57
  261. package/tests/cli-integ-tests/cdk-lib-cli-lib-deploy.integtest.ts +0 -32
  262. package/tests/cli-integ-tests/cdk-lib-cli-lib-list.integtest.ts +0 -12
  263. package/tests/cli-integ-tests/cdk-lib-cli-lib-synth.integtest.ts +0 -27
  264. package/tests/cli-integ-tests/cdk-lib-security-related-changes-without-a-cli-are-expected-to-fail-when-approval-is-required.integtest.ts +0 -32
  265. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-csharp.integtest.ts +0 -13
  266. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-java.integtest.ts +0 -14
  267. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-python.integtest.ts +0 -13
  268. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-typescript.integtest.ts +0 -13
  269. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-csharp.integtest.ts +0 -15
  270. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-java.integtest.ts +0 -15
  271. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-python.integtest.ts +0 -15
  272. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-typescript.integtest.ts +0 -15
  273. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-generates-migrate.json.integtest.ts +0 -20
  274. package/tests/cli-integ-tests/cdk-migrate/testcase.ts +0 -69
  275. package/tests/cli-integ-tests/cdk-nested-stack-with-parameters.integtest.ts +0 -28
  276. package/tests/cli-integ-tests/cdk-requests-go-through-a-proxy-when-configured.integtest.ts +0 -39
  277. package/tests/cli-integ-tests/cdk-sam-can-locally-test-the-synthesized-cdk-application.integtest.ts +0 -25
  278. package/tests/cli-integ-tests/cdk-security-related-changes-without-a-cli-are-expected-to-fail.integtest.ts +0 -30
  279. package/tests/cli-integ-tests/cdk-skips-notice-refresh.integtest.ts +0 -26
  280. package/tests/cli-integ-tests/cdk-ssm-parameter-provider-error.integtest.ts +0 -18
  281. package/tests/cli-integ-tests/cdk-stack-in-update_rollback_complete-state-can-be-updated.integtest.ts +0 -59
  282. package/tests/cli-integ-tests/cdk-stage-with-bundled-lambda-function.integtest.ts +0 -13
  283. package/tests/cli-integ-tests/cdk-synth---quiet-can-be-specified-in-cdk.json.integtest.ts +0 -20
  284. package/tests/cli-integ-tests/cdk-synthing-a-stage-with-errors-can-be-suppressed.integtest.ts +0 -15
  285. package/tests/cli-integ-tests/cdk-synthing-a-stage-with-errors-leads-to-failure.integtest.ts +0 -18
  286. package/tests/cli-integ-tests/cdk-templates-on-disk-contain-metadata-resource.integtest.ts +0 -25
  287. package/tests/cli-integ-tests/cdk-termination-protection.integtest.ts +0 -19
  288. package/tests/cli-integ-tests/cdk-test-cdk-rollback---force.integtest.ts +0 -48
  289. package/tests/cli-integ-tests/cdk-test-cdk-rollback.integtest.ts +0 -38
  290. package/tests/cli-integ-tests/cdk-test-migrate-deployment-for-app-with-localfile-source-in-migrate.json.integtest.ts +0 -56
  291. package/tests/cli-integ-tests/cdk-test-resource-import-with-construct-that-requires-bundling.integtest.ts +0 -74
  292. package/tests/cli-integ-tests/cdk-test-resource-import.integtest.ts +0 -64
  293. package/tests/cli-integ-tests/cdk-two-ways-of-showing-the-version.integtest.ts +0 -14
  294. package/tests/cli-integ-tests/cdk-update-to-stack-in-rollback_complete-state-will-delete-stack-and-create-a-new-one.integtest.ts +0 -47
  295. package/tests/cli-integ-tests/cdk-vpc-lookup.integtest.ts +0 -26
  296. package/tests/cli-integ-tests/proxy.integtest.ts +0 -168
  297. package/tests/init-csharp/init-csharp.integtest.ts +0 -15
  298. package/tests/init-fsharp/init-fsharp.integtest.ts +0 -15
  299. package/tests/init-go/init-go.integtest.ts +0 -28
  300. package/tests/init-java/init-java.integtest.ts +0 -14
  301. package/tests/init-javascript/init-javascript.integtest.ts +0 -58
  302. package/tests/init-python/init-python.integtest.ts +0 -20
  303. package/tests/init-typescript-app/init-typescript-app.integtest.ts +0 -67
  304. package/tests/init-typescript-lib/init-typescript-lib.integtest.ts +0 -13
  305. package/tests/tool-integrations/amplify.integtest.ts +0 -117
  306. package/tests/tool-integrations/with-tool-context.ts +0 -14
  307. package/tests/uberpackage/uberpackage.integtest.ts +0 -11
@@ -1,28 +0,0 @@
1
- import { DescribeStacksCommand, ListChangeSetsCommand } 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('deploy without import-existing-resources', withDefaultFixture(async (fixture) => {
7
- const stackArn = await fixture.cdkDeploy('test-2', {
8
- options: ['--no-execute'],
9
- captureStderr: false,
10
- });
11
- // verify that we only deployed a single stack (there's a single ARN in the output)
12
- expect(stackArn.split('\n').length).toEqual(1);
13
-
14
- const response = await fixture.aws.cloudFormation.send(new DescribeStacksCommand({
15
- StackName: stackArn,
16
- }));
17
- expect(response.Stacks?.[0].StackStatus).toEqual('REVIEW_IN_PROGRESS');
18
-
19
- // verify a change set was successfully created and ImportExistingResources = false
20
- const changeSetResponse = await fixture.aws.cloudFormation.send(new ListChangeSetsCommand({
21
- StackName: stackArn,
22
- }));
23
- const changeSets = changeSetResponse.Summaries || [];
24
- expect(changeSets.length).toEqual(1);
25
- expect(changeSets[0].Status).toEqual('CREATE_COMPLETE');
26
- expect(changeSets[0].ImportExistingResources).toEqual(false);
27
- }));
28
-
@@ -1,20 +0,0 @@
1
- import { DescribeStackResourcesCommand } 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
- 'deploy',
8
- withDefaultFixture(async (fixture) => {
9
- const stackArn = await fixture.cdkDeploy('test-2', { captureStderr: false });
10
-
11
- // verify the number of resources in the stack
12
- const response = await fixture.aws.cloudFormation.send(
13
- new DescribeStackResourcesCommand({
14
- StackName: stackArn,
15
- }),
16
- );
17
- expect(response.StackResources?.length).toEqual(2);
18
- }),
19
- );
20
-
@@ -1,36 +0,0 @@
1
- import { DescribeStacksCommand } from '@aws-sdk/client-cloudformation';
2
- import { integTest, withDefaultFixture } from '../../lib';
3
-
4
- integTest('cdk destroy prompts the user for confirmation', withDefaultFixture(async (fixture) => {
5
-
6
- const stackName = 'test-2';
7
- const fullStackName = fixture.fullStackName(stackName);
8
-
9
- fixture.log(`Deploying stack ${fullStackName}`);
10
- await fixture.cdkDeploy(stackName);
11
-
12
- fixture.log(`Destroying stack ${fullStackName} and declining prompt`);
13
- await fixture.cdkDestroy(stackName, {
14
- force: false,
15
- interact: [
16
- { prompt: /Are you sure you want to delete/, input: 'no' }
17
- ]
18
- });
19
-
20
- // assert we didn't destroy the stack
21
- const stack = await fixture.aws.cloudFormation.send(new DescribeStacksCommand({ StackName: fullStackName }))
22
- expect(stack.Stacks?.length ?? 0).toEqual(1)
23
-
24
- fixture.log(`Destroying stack ${fullStackName} and accepting prompt`);
25
- await fixture.cdkDestroy(stackName, {
26
- force: false,
27
- interact: [
28
- { prompt: /Are you sure you want to delete/, input: 'yes' }
29
- ]
30
- });
31
-
32
- // assert we did destroy the stack
33
- await expect(fixture.aws.cloudFormation.send(new DescribeStacksCommand({ StackName: fullStackName })))
34
- .rejects.toThrow(/does not exist/);
35
-
36
- }));
@@ -1,12 +0,0 @@
1
- import { integTest, withDefaultFixture } from '../../lib';
2
-
3
- jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-case single-threaded runtime
4
-
5
- integTest('doubly nested stack',
6
- withDefaultFixture(async (fixture) => {
7
- await fixture.cdkDeploy('with-doubly-nested-stack', {
8
- captureStderr: false,
9
- });
10
- }),
11
- );
12
-
@@ -1,44 +0,0 @@
1
- import { promises as fs } from 'fs';
2
- import * as path from 'path';
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
- 'enableDiffNoFail',
9
- withDefaultFixture(async (fixture) => {
10
- await diffShouldSucceedWith({ fail: false, enableDiffNoFail: false });
11
- await diffShouldSucceedWith({ fail: false, enableDiffNoFail: true });
12
- await diffShouldFailWith({ fail: true, enableDiffNoFail: false });
13
- await diffShouldFailWith({ fail: true, enableDiffNoFail: true });
14
- await diffShouldFailWith({ fail: undefined, enableDiffNoFail: false });
15
- await diffShouldSucceedWith({ fail: undefined, enableDiffNoFail: true });
16
-
17
- async function diffShouldSucceedWith(props: DiffParameters) {
18
- await expect(diff(props)).resolves.not.toThrow();
19
- }
20
-
21
- async function diffShouldFailWith(props: DiffParameters) {
22
- await expect(diff(props)).rejects.toThrow('exited with error');
23
- }
24
-
25
- async function diff(props: DiffParameters): Promise<string> {
26
- await updateContext(props.enableDiffNoFail);
27
- const flag = props.fail != null ? (props.fail ? '--fail' : '--no-fail') : '';
28
-
29
- return fixture.cdk(['diff', flag, fixture.fullStackName('test-1')]);
30
- }
31
-
32
- async function updateContext(enableDiffNoFail: boolean) {
33
- const cdkJson = JSON.parse(await fs.readFile(path.join(fixture.integTestDir, 'cdk.json'), 'utf8'));
34
- cdkJson.context = {
35
- ...cdkJson.context,
36
- 'aws-cdk:enableDiffNoFail': enableDiffNoFail,
37
- };
38
- await fs.writeFile(path.join(fixture.integTestDir, 'cdk.json'), JSON.stringify(cdkJson));
39
- }
40
-
41
- type DiffParameters = { fail?: boolean; enableDiffNoFail: boolean };
42
- }),
43
- );
44
-
@@ -1,12 +0,0 @@
1
- import { integTest, withDefaultFixture } 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
- 'failed deploy does not hang',
7
- withDefaultFixture(async (fixture) => {
8
- // this will hang if we introduce https://github.com/aws/aws-cdk/issues/6403 again.
9
- await expect(fixture.cdkDeploy('failed')).rejects.toThrow('exited with error');
10
- }),
11
- );
12
-
@@ -1,41 +0,0 @@
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
- 'fast deploy',
8
- withDefaultFixture(async (fixture) => {
9
- // we are using a stack with a nested stack because CFN will always attempt to
10
- // update a nested stack, which will allow us to verify that updates are actually
11
- // skipped unless --force is specified.
12
- const stackArn = await fixture.cdkDeploy('with-nested-stack', { captureStderr: false });
13
- const changeSet1 = await getLatestChangeSet();
14
-
15
- // Deploy the same stack again, there should be no new change set created
16
- await fixture.cdkDeploy('with-nested-stack');
17
- const changeSet2 = await getLatestChangeSet();
18
- expect(changeSet2.ChangeSetId).toEqual(changeSet1.ChangeSetId);
19
-
20
- // Deploy the stack again with --force, now we should create a changeset
21
- await fixture.cdkDeploy('with-nested-stack', { options: ['--force'] });
22
- const changeSet3 = await getLatestChangeSet();
23
- expect(changeSet3.ChangeSetId).not.toEqual(changeSet2.ChangeSetId);
24
-
25
- // Deploy the stack again with tags, expected to create a new changeset
26
- // even though the resources didn't change.
27
- await fixture.cdkDeploy('with-nested-stack', { options: ['--tags', 'key=value'] });
28
- const changeSet4 = await getLatestChangeSet();
29
- expect(changeSet4.ChangeSetId).not.toEqual(changeSet3.ChangeSetId);
30
-
31
- async function getLatestChangeSet() {
32
- const response = await fixture.aws.cloudFormation.send(new DescribeStacksCommand({ StackName: stackArn }));
33
- if (!response.Stacks?.[0]) {
34
- throw new Error('Did not get a ChangeSet at all');
35
- }
36
- fixture.log(`Found Change Set ${response.Stacks?.[0].ChangeSetId}`);
37
- return response.Stacks?.[0];
38
- }
39
- }),
40
- );
41
-
@@ -1,48 +0,0 @@
1
- import { ListImagesCommand } from '@aws-sdk/client-ecr';
2
- import { integTest, withoutBootstrap } 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
- 'Garbage Collection deletes unused ecr images',
8
- withoutBootstrap(async (fixture) => {
9
- const toolkitStackName = fixture.bootstrapStackName;
10
-
11
- await fixture.cdkBootstrapModern({
12
- toolkitStackName,
13
- });
14
-
15
- const repoName = await fixture.bootstrapRepoName();
16
-
17
- await fixture.cdkDeploy('docker-in-use', {
18
- options: [
19
- '--context', `@aws-cdk/core:bootstrapQualifier=${fixture.qualifier}`,
20
- '--toolkit-stack-name', toolkitStackName,
21
- '--force',
22
- ],
23
- });
24
- fixture.log('Setup complete!');
25
-
26
- await fixture.cdkDestroy('docker-in-use', {
27
- options: [
28
- '--context', `@aws-cdk/core:bootstrapQualifier=${fixture.qualifier}`,
29
- '--toolkit-stack-name', toolkitStackName,
30
- '--force',
31
- ],
32
- });
33
-
34
- await fixture.cdkGarbageCollect({
35
- rollbackBufferDays: 0,
36
- type: 'ecr',
37
- bootstrapStackName: toolkitStackName,
38
- });
39
- fixture.log('Garbage collection complete!');
40
-
41
- // assert that the bootstrap repository is empty
42
- await fixture.aws.ecr.send(new ListImagesCommand({ repositoryName: repoName }))
43
- .then((result) => {
44
- expect(result.imageIds).toEqual([]);
45
- });
46
- }),
47
- );
48
-
@@ -1,51 +0,0 @@
1
- import { ListObjectsV2Command } from '@aws-sdk/client-s3';
2
- import { integTest, withoutBootstrap, randomString } 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
- 'Garbage Collection deletes unused s3 objects',
8
- withoutBootstrap(async (fixture) => {
9
- const toolkitStackName = fixture.bootstrapStackName;
10
- const bootstrapBucketName = `aws-cdk-garbage-collect-integ-test-bckt-${randomString()}`;
11
- fixture.rememberToDeleteBucket(bootstrapBucketName); // just in case
12
-
13
- await fixture.cdkBootstrapModern({
14
- toolkitStackName,
15
- bootstrapBucketName,
16
- });
17
-
18
- await fixture.cdkDeploy('lambda', {
19
- options: [
20
- '--context', `bootstrapBucket=${bootstrapBucketName}`,
21
- '--context', `@aws-cdk/core:bootstrapQualifier=${fixture.qualifier}`,
22
- '--toolkit-stack-name', toolkitStackName,
23
- '--force',
24
- ],
25
- });
26
- fixture.log('Setup complete!');
27
-
28
- await fixture.cdkDestroy('lambda', {
29
- options: [
30
- '--context', `bootstrapBucket=${bootstrapBucketName}`,
31
- '--context', `@aws-cdk/core:bootstrapQualifier=${fixture.qualifier}`,
32
- '--toolkit-stack-name', toolkitStackName,
33
- '--force',
34
- ],
35
- });
36
-
37
- await fixture.cdkGarbageCollect({
38
- rollbackBufferDays: 0,
39
- type: 's3',
40
- bootstrapStackName: toolkitStackName,
41
- });
42
- fixture.log('Garbage collection complete!');
43
-
44
- // assert that the bootstrap bucket is empty
45
- await fixture.aws.s3.send(new ListObjectsV2Command({ Bucket: bootstrapBucketName }))
46
- .then((result) => {
47
- expect(result.Contents).toBeUndefined();
48
- });
49
- }),
50
- );
51
-
@@ -1,48 +0,0 @@
1
- import { ListImagesCommand } from '@aws-sdk/client-ecr';
2
- import { integTest, withoutBootstrap } 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
- 'Garbage Collection keeps in use ecr images',
8
- withoutBootstrap(async (fixture) => {
9
- const toolkitStackName = fixture.bootstrapStackName;
10
-
11
- await fixture.cdkBootstrapModern({
12
- toolkitStackName,
13
- });
14
-
15
- const repoName = await fixture.bootstrapRepoName();
16
-
17
- await fixture.cdkDeploy('docker-in-use', {
18
- options: [
19
- '--context', `@aws-cdk/core:bootstrapQualifier=${fixture.qualifier}`,
20
- '--toolkit-stack-name', toolkitStackName,
21
- '--force',
22
- ],
23
- });
24
- fixture.log('Setup complete!');
25
-
26
- await fixture.cdkGarbageCollect({
27
- rollbackBufferDays: 0,
28
- type: 'ecr',
29
- bootstrapStackName: toolkitStackName,
30
- });
31
- fixture.log('Garbage collection complete!');
32
-
33
- // assert that the bootstrap repository is empty
34
- await fixture.aws.ecr.send(new ListImagesCommand({ repositoryName: repoName }))
35
- .then((result) => {
36
- expect(result.imageIds).toHaveLength(1);
37
- });
38
-
39
- await fixture.cdkDestroy('docker-in-use', {
40
- options: [
41
- '--context', `@aws-cdk/core:bootstrapQualifier=${fixture.qualifier}`,
42
- '--toolkit-stack-name', toolkitStackName,
43
- '--force',
44
- ],
45
- });
46
- }),
47
- );
48
-
@@ -1,52 +0,0 @@
1
- import { ListObjectsV2Command } from '@aws-sdk/client-s3';
2
- import { integTest, withoutBootstrap, randomString } 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
- 'Garbage Collection keeps in use s3 objects',
8
- withoutBootstrap(async (fixture) => {
9
- const toolkitStackName = fixture.bootstrapStackName;
10
- const bootstrapBucketName = `aws-cdk-garbage-collect-integ-test-bckt-${randomString()}`;
11
- fixture.rememberToDeleteBucket(bootstrapBucketName); // just in case
12
-
13
- await fixture.cdkBootstrapModern({
14
- toolkitStackName,
15
- bootstrapBucketName,
16
- });
17
-
18
- await fixture.cdkDeploy('lambda', {
19
- options: [
20
- '--context', `bootstrapBucket=${bootstrapBucketName}`,
21
- '--context', `@aws-cdk/core:bootstrapQualifier=${fixture.qualifier}`,
22
- '--toolkit-stack-name', toolkitStackName,
23
- '--force',
24
- ],
25
- });
26
- fixture.log('Setup complete!');
27
-
28
- await fixture.cdkGarbageCollect({
29
- rollbackBufferDays: 0,
30
- type: 's3',
31
- bootstrapStackName: toolkitStackName,
32
- });
33
- fixture.log('Garbage collection complete!');
34
-
35
- // assert that the bootstrap bucket has the object
36
- await fixture.aws.s3.send(new ListObjectsV2Command({ Bucket: bootstrapBucketName }))
37
- .then((result) => {
38
- expect(result.Contents).toHaveLength(1);
39
- });
40
-
41
- await fixture.cdkDestroy('lambda', {
42
- options: [
43
- '--context', `bootstrapBucket=${bootstrapBucketName}`,
44
- '--context', `@aws-cdk/core:bootstrapQualifier=${fixture.qualifier}`,
45
- '--toolkit-stack-name', toolkitStackName,
46
- '--force',
47
- ],
48
- });
49
- fixture.log('Teardown complete!');
50
- }),
51
- );
52
-
@@ -1,47 +0,0 @@
1
- import { ListImagesCommand } from '@aws-sdk/client-ecr';
2
- import { integTest, withoutBootstrap } 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
- 'Garbage Collection tags unused ecr images',
8
- withoutBootstrap(async (fixture) => {
9
- const toolkitStackName = fixture.bootstrapStackName;
10
-
11
- await fixture.cdkBootstrapModern({
12
- toolkitStackName,
13
- });
14
-
15
- const repoName = await fixture.bootstrapRepoName();
16
-
17
- await fixture.cdkDeploy('docker-in-use', {
18
- options: [
19
- '--context', `@aws-cdk/core:bootstrapQualifier=${fixture.qualifier}`,
20
- '--toolkit-stack-name', toolkitStackName,
21
- '--force',
22
- ],
23
- });
24
- fixture.log('Setup complete!');
25
-
26
- await fixture.cdkDestroy('docker-in-use', {
27
- options: [
28
- '--context', `@aws-cdk/core:bootstrapQualifier=${fixture.qualifier}`,
29
- '--toolkit-stack-name', toolkitStackName,
30
- '--force',
31
- ],
32
- });
33
-
34
- await fixture.cdkGarbageCollect({
35
- rollbackBufferDays: 100, // this will ensure that we do not delete assets immediately (and just tag them)
36
- type: 'ecr',
37
- bootstrapStackName: toolkitStackName,
38
- });
39
- fixture.log('Garbage collection complete!');
40
-
41
- await fixture.aws.ecr.send(new ListImagesCommand({ repositoryName: repoName }))
42
- .then((result) => {
43
- expect(result.imageIds).toHaveLength(2); // the second tag comes in as a second 'id'
44
- });
45
- }),
46
- );
47
-
@@ -1,63 +0,0 @@
1
- import { GetObjectTaggingCommand, ListObjectsV2Command } from '@aws-sdk/client-s3';
2
- import { integTest, withoutBootstrap, randomString } 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
- 'Garbage Collection tags unused s3 objects',
8
- withoutBootstrap(async (fixture) => {
9
- const toolkitStackName = fixture.bootstrapStackName;
10
- const bootstrapBucketName = `aws-cdk-garbage-collect-integ-test-bckt-${randomString()}`;
11
- fixture.rememberToDeleteBucket(bootstrapBucketName); // just in case
12
-
13
- await fixture.cdkBootstrapModern({
14
- toolkitStackName,
15
- bootstrapBucketName,
16
- });
17
-
18
- await fixture.cdkDeploy('lambda', {
19
- options: [
20
- '--context', `bootstrapBucket=${bootstrapBucketName}`,
21
- '--context', `@aws-cdk/core:bootstrapQualifier=${fixture.qualifier}`,
22
- '--toolkit-stack-name', toolkitStackName,
23
- '--force',
24
- ],
25
- });
26
- fixture.log('Setup complete!');
27
-
28
- await fixture.cdkDestroy('lambda', {
29
- options: [
30
- '--context', `bootstrapBucket=${bootstrapBucketName}`,
31
- '--context', `@aws-cdk/core:bootstrapQualifier=${fixture.qualifier}`,
32
- '--toolkit-stack-name', toolkitStackName,
33
- '--force',
34
- ],
35
- });
36
-
37
- await fixture.cdkGarbageCollect({
38
- rollbackBufferDays: 100, // this will ensure that we do not delete assets immediately (and just tag them)
39
- type: 's3',
40
- bootstrapStackName: toolkitStackName,
41
- });
42
- fixture.log('Garbage collection complete!');
43
-
44
- // assert that the bootstrap bucket has the object and is tagged
45
- await fixture.aws.s3.send(new ListObjectsV2Command({ Bucket: bootstrapBucketName }))
46
- .then(async (result) => {
47
- expect(result.Contents).toHaveLength(2); // also the CFN template
48
- const key = result.Contents![0].Key;
49
- const tags = await fixture.aws.s3.send(new GetObjectTaggingCommand({ Bucket: bootstrapBucketName, Key: key }));
50
- expect(tags.TagSet).toHaveLength(1);
51
- });
52
-
53
- await fixture.cdkDestroy('lambda', {
54
- options: [
55
- '--context', `bootstrapBucket=${bootstrapBucketName}`,
56
- '--context', `@aws-cdk/core:bootstrapQualifier=${fixture.qualifier}`,
57
- '--toolkit-stack-name', toolkitStackName,
58
- '--force',
59
- ],
60
- });
61
- }),
62
- );
63
-
@@ -1,55 +0,0 @@
1
- import { BatchGetImageCommand, ListImagesCommand, PutImageCommand } from '@aws-sdk/client-ecr';
2
- import { integTest, withoutBootstrap } from '../../lib';
3
-
4
- const ECR_ISOLATED_TAG = 'aws-cdk.isolated';
5
-
6
- jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-case single-threaded runtime
7
-
8
- integTest(
9
- 'Garbage Collection untags in-use ecr images',
10
- withoutBootstrap(async (fixture) => {
11
- const toolkitStackName = fixture.bootstrapStackName;
12
-
13
- await fixture.cdkBootstrapModern({
14
- toolkitStackName,
15
- });
16
-
17
- const repoName = await fixture.bootstrapRepoName();
18
-
19
- await fixture.cdkDeploy('docker-in-use', {
20
- options: [
21
- '--context', `@aws-cdk/core:bootstrapQualifier=${fixture.qualifier}`,
22
- '--toolkit-stack-name', toolkitStackName,
23
- '--force',
24
- ],
25
- });
26
- fixture.log('Setup complete!');
27
-
28
- // Artificially add tagging to the asset in the bootstrap bucket
29
- const imageIds = await fixture.aws.ecr.send(new ListImagesCommand({ repositoryName: repoName }));
30
- const digest = imageIds.imageIds![0].imageDigest;
31
- const imageManifests = await fixture.aws.ecr.send(new BatchGetImageCommand({ repositoryName: repoName, imageIds: [{ imageDigest: digest }] }));
32
- const manifest = imageManifests.images![0].imageManifest;
33
- await fixture.aws.ecr.send(new PutImageCommand({ repositoryName: repoName, imageManifest: manifest, imageDigest: digest, imageTag: `0-${ECR_ISOLATED_TAG}-12345` }));
34
-
35
- await fixture.cdkGarbageCollect({
36
- rollbackBufferDays: 100, // this will ensure that we do not delete assets immediately (and just tag them)
37
- type: 'ecr',
38
- bootstrapStackName: toolkitStackName,
39
- });
40
- fixture.log('Garbage collection complete!');
41
-
42
- await fixture.aws.ecr.send(new ListImagesCommand({ repositoryName: repoName }))
43
- .then((result) => {
44
- expect(result.imageIds).toHaveLength(1); // the second tag has been removed
45
- });
46
-
47
- await fixture.cdkDestroy('docker-in-use', {
48
- options: [
49
- '--context', `@aws-cdk/core:bootstrapQualifier=${fixture.qualifier}`,
50
- '--toolkit-stack-name', toolkitStackName,
51
- '--force',
52
- ],
53
- });
54
- }),
55
- );
@@ -1,63 +0,0 @@
1
- import { GetObjectTaggingCommand, ListObjectsV2Command, PutObjectTaggingCommand } from '@aws-sdk/client-s3';
2
- import { integTest, withoutBootstrap, randomString } from '../../lib';
3
-
4
- const S3_ISOLATED_TAG = 'aws-cdk:isolated';
5
-
6
- jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-case single-threaded runtime
7
-
8
- integTest(
9
- 'Garbage Collection untags in-use s3 objects',
10
- withoutBootstrap(async (fixture) => {
11
- const toolkitStackName = fixture.bootstrapStackName;
12
- const bootstrapBucketName = `aws-cdk-garbage-collect-integ-test-bckt-${randomString()}`;
13
- fixture.rememberToDeleteBucket(bootstrapBucketName); // just in case
14
-
15
- await fixture.cdkBootstrapModern({
16
- toolkitStackName,
17
- bootstrapBucketName,
18
- });
19
-
20
- await fixture.cdkDeploy('lambda', {
21
- options: [
22
- '--context', `bootstrapBucket=${bootstrapBucketName}`,
23
- '--context', `@aws-cdk/core:bootstrapQualifier=${fixture.qualifier}`,
24
- '--toolkit-stack-name', toolkitStackName,
25
- '--force',
26
- ],
27
- });
28
- fixture.log('Setup complete!');
29
-
30
- // Artificially add tagging to the asset in the bootstrap bucket
31
- const result = await fixture.aws.s3.send(new ListObjectsV2Command({ Bucket: bootstrapBucketName }));
32
- const key = result.Contents!.filter((c) => c.Key?.split('.')[1] == 'zip')[0].Key; // fancy footwork to make sure we have the asset key
33
- await fixture.aws.s3.send(new PutObjectTaggingCommand({
34
- Bucket: bootstrapBucketName,
35
- Key: key,
36
- Tagging: {
37
- TagSet: [{
38
- Key: S3_ISOLATED_TAG,
39
- Value: '12345',
40
- }, {
41
- Key: 'bogus',
42
- Value: 'val',
43
- }],
44
- },
45
- }));
46
-
47
- await fixture.cdkGarbageCollect({
48
- rollbackBufferDays: 100, // this will ensure that we do not delete assets immediately (and just tag them)
49
- type: 's3',
50
- bootstrapStackName: toolkitStackName,
51
- });
52
- fixture.log('Garbage collection complete!');
53
-
54
- // assert that the isolated object tag is removed while the other tag remains
55
- const newTags = await fixture.aws.s3.send(new GetObjectTaggingCommand({ Bucket: bootstrapBucketName, Key: key }));
56
-
57
- expect(newTags.TagSet).toEqual([{
58
- Key: 'bogus',
59
- Value: 'val',
60
- }]);
61
- }),
62
- );
63
-