@aws-cdk-testing/cli-integ 3.5.0 → 3.7.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.
- package/README.md +48 -39
- package/lib/aws.js +20 -9
- package/lib/cli/query-github.js +2 -3
- package/lib/cli/run-suite.js +123 -52
- package/lib/cli/stage-distribution.js +4 -4
- package/lib/corking.js +2 -5
- package/lib/eventually.js +3 -3
- package/lib/files.js +2 -3
- package/lib/github.js +5 -6
- package/lib/integ-test.js +58 -3
- package/lib/npm.d.ts +2 -0
- package/lib/npm.js +30 -1
- package/lib/package-sources/cli-npm-source.d.ts +14 -0
- package/lib/package-sources/cli-npm-source.js +50 -0
- package/lib/package-sources/cli-repo-source.d.ts +19 -0
- package/lib/package-sources/cli-repo-source.js +49 -0
- package/lib/package-sources/find-root.d.ts +6 -0
- package/lib/package-sources/find-root.js +18 -0
- package/lib/package-sources/library-globalinstall-source.d.ts +20 -0
- package/lib/package-sources/library-globalinstall-source.js +70 -0
- package/lib/package-sources/library-npm-source.d.ts +17 -0
- package/lib/package-sources/library-npm-source.js +60 -0
- package/lib/package-sources/library-preinstalled-source.d.ts +21 -0
- package/lib/package-sources/library-preinstalled-source.js +78 -0
- package/lib/package-sources/repo-tools/npm.js +4 -5
- package/lib/package-sources/source.d.ts +36 -18
- package/lib/package-sources/source.js +1 -1
- package/lib/package-sources/subprocess.d.ts +10 -3
- package/lib/package-sources/subprocess.js +31 -12
- package/lib/process.js +7 -6
- package/lib/proxy.d.ts +1 -1
- package/lib/proxy.js +2 -2
- package/lib/resource-pool.js +10 -6
- package/lib/shell.d.ts +3 -3
- package/lib/shell.js +12 -16
- package/lib/staging/codeartifact.js +17 -18
- package/lib/staging/maven.d.ts +2 -2
- package/lib/staging/maven.js +3 -5
- package/lib/staging/npm.d.ts +2 -2
- package/lib/staging/npm.js +1 -1
- package/lib/staging/nuget.d.ts +2 -2
- package/lib/staging/nuget.js +1 -1
- package/lib/staging/parallel-shell.js +2 -2
- package/lib/staging/pypi.d.ts +2 -2
- package/lib/staging/pypi.js +1 -1
- package/lib/staging/usage-dir.js +4 -1
- package/lib/with-aws.d.ts +2 -2
- package/lib/with-aws.js +5 -4
- package/lib/with-cdk-app.d.ts +9 -6
- package/lib/with-cdk-app.js +48 -61
- package/lib/with-cli-lib.d.ts +4 -3
- package/lib/with-cli-lib.js +5 -8
- package/lib/with-packages.d.ts +3 -2
- package/lib/with-packages.js +3 -2
- package/lib/with-sam.d.ts +3 -3
- package/lib/with-sam.js +15 -33
- package/lib/with-temporary-directory.d.ts +1 -1
- package/lib/with-temporary-directory.js +1 -1
- package/lib/xpmutex.js +11 -4
- package/lib/yarn.d.ts +6 -0
- package/lib/yarn.js +31 -0
- package/npm-shrinkwrap.json +8724 -0
- package/package.json +16 -11
- package/resources/cdk-apps/refactoring/cdk.json +7 -0
- package/resources/cdk-apps/refactoring/refactoring.js +18 -0
- package/resources/integ.jest.config.js +45 -8
- package/test-reports/junit.xml +15 -0
- package/tests/cli-integ-tests/cdk---exclusively-selects-only-selected-stack.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-assets/cdk-assets-uses-profile.integtest.js +12 -12
- package/tests/cli-integ-tests/cdk-assets/smoketest.integtest.js +10 -10
- package/tests/cli-integ-tests/cdk-automatic-ordering-with-concurrency.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-automatic-ordering.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-automatic-rollback-if-paused-and---no-rollback-is-removed-from-flags.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-automatic-rollback-if-paused-and-change-contains-a-replacement.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-automatic-rollback-if-replacement-and---no-rollback-is-removed-from-flags.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-bootstrap-a-customized-template-vendor-will-not-overwrite-the-default-template.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-bootstrap-add-tags.integtest.js +3 -4
- package/tests/cli-integ-tests/cdk-bootstrap-can-add-tags-then-update-tags-during-re-bootstrap.integtest.js +3 -4
- package/tests/cli-integ-tests/cdk-bootstrap-can-and-deploy-if-omitting-execution-policies.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-bootstrap-can-bootstrap-without-execution.integtest.js +3 -4
- package/tests/cli-integ-tests/cdk-bootstrap-can-create-a-legacy-bootstrap-stack-with---public-access-block-configuration-false.integtest.js +3 -4
- package/tests/cli-integ-tests/cdk-bootstrap-can-create-multiple-legacy-bootstrap-stacks.integtest.js +3 -4
- package/tests/cli-integ-tests/cdk-bootstrap-can-deploy-modern-synthesized-stack-even-if-bootstrap-stack-name-is-unknown.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-bootstrap-can-deploy-with-session-tags-on-the-deploy.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-bootstrap-can-deploy-without-execution-role-and-with-session-tags-on-deploy-role.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-bootstrap-can-dump-the-template.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-bootstrap-can-remove-custompermissionsboundary.integtest.js +5 -7
- package/tests/cli-integ-tests/cdk-bootstrap-can-remove-trusted-account.integtest.js +3 -4
- package/tests/cli-integ-tests/cdk-bootstrap-can-use-the-custom-permissions-boundary-(with-slashes)-to-bootstrap.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-bootstrap-can-use-the-custom-permissions-boundary-to-bootstrap.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-bootstrap-can-use-the-default-permissions-boundary-to-bootstrap.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-bootstrap-create-ecr-with-tag-immutability-to-set-on.integtest.js +5 -6
- package/tests/cli-integ-tests/cdk-bootstrap-deploy-new-style-synthesis-to-new-style-bootstrap-(with-docker-image).integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-bootstrap-deploy-new-style-synthesis-to-new-style-bootstrap.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-bootstrap-deploy-old-style-synthesis-to-new-style-bootstrap.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-bootstrap-switch-on-termination-protection.integtest.js +3 -4
- package/tests/cli-integ-tests/cdk-bootstrap-upgrade-legacy-bootstrap-stack-to-new-bootstrap-stack-while-in-use.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-can-still-load-old-assemblies.integtest.js +2 -2
- 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 +2 -2
- package/tests/cli-integ-tests/cdk-cdk-diff---fail-with-multiple-stack-exits-with-if-any-of-the-stacks-contains-a-diff.integtest.js +2 -2
- 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 +2 -2
- package/tests/cli-integ-tests/cdk-cdk-diff---security-only---fail-exits-when-security-changes-are-present.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-cdk-diff---security-only---fail-exits-when-security-diff-for-sso-access-control-config.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-cdk-diff---security-only---fail-exits-when-security-diff-for-sso-assignment.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-cdk-diff---security-only---fail-exits-when-security-diff-for-sso-perm-set-with-managed-policy.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-cdk-diff---security-only---fail-exits-when-security-diff-for-sso-perm-set-without-managed-policy.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-cdk-diff---security-only-successfully-outputs-sso-access-control-information.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-cdk-diff---security-only-successfully-outputs-sso-assignment-information.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-cdk-diff---security-only-successfully-outputs-sso-permission-set-with-managed-policy-information.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-cdk-diff---security-only-successfully-outputs-sso-permission-set-without-managed-policy-information.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-cdk-diff-doesnt-show-resource-metadata-changes.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-cdk-diff-shows-resource-metadata-changes-with---no-change-set.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-cdk-diff-with-large-changeset-and-custom-toolkit-stack-name-and-qualifier-does-not-fail.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-cdk-diff-with-large-changeset-does-not-fail.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-cdk-diff.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-cdk-ls---show-dependencies---json---long.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-cdk-ls---show-dependencies---json.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-cdk-ls.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-cdk-notices-are-displayed-correctly.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-cdk-notices-with---unacknowledged.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-cdk-synth-add-the-metadata-properties-expected-by-sam.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-cdk-synth-bundled-functions-as-expected.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-cdk-synth.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-ci-output-to-stderr.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-ci-true-output-to-stdout.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-construct-with-builtin-lambda-function.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-context-in-stage-propagates-to-top.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-context-setting.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-deploy---method-direct.integtest.js +3 -4
- package/tests/cli-integ-tests/cdk-deploy-all-concurrently.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-deploy-all.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-deploy-and-test-stack-with-lambda-asset.integtest.js +4 -5
- package/tests/cli-integ-tests/cdk-deploy-deletes-all-notification-arns-when-empty-array-is-passed.integtest.js +4 -5
- package/tests/cli-integ-tests/cdk-deploy-no-stacks-error.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-deploy-no-stacks-with---ignore-no-stacks.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-deploy-preserves-existing-notification-arns-when-not-specified.integtest.js +3 -4
- package/tests/cli-integ-tests/cdk-deploy-stack-with-docker-asset.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-deploy-stack-with-lambda-asset-to-object-lock-enabled-asset-bucket.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-deploy-stack-without-resource.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-deploy-wildcard-with-outputs.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-deploy-with-import-existing-resources-true.integtest.js +3 -4
- package/tests/cli-integ-tests/cdk-deploy-with-method-direct-and-import-existing-resources-fails.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-deploy-with-notification-arn-as-flag.integtest.js +3 -4
- package/tests/cli-integ-tests/cdk-deploy-with-notification-arn-as-prop-and-flag.integtest.js +3 -4
- package/tests/cli-integ-tests/cdk-deploy-with-notification-arn-as-prop.integtest.js +3 -4
- package/tests/cli-integ-tests/cdk-deploy-with-parameters-multi.integtest.js +4 -5
- package/tests/cli-integ-tests/cdk-deploy-with-parameters.integtest.js +3 -4
- package/tests/cli-integ-tests/cdk-deploy-with-wildcard-and-parameters.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-deploy-without-execute-a-named-change-set.integtest.js +3 -4
- package/tests/cli-integ-tests/cdk-deploy-without-import-existing-resources.integtest.js +3 -4
- package/tests/cli-integ-tests/cdk-deploy.integtest.js +3 -4
- package/tests/cli-integ-tests/cdk-destroy-interactive.integtest.js +6 -7
- package/tests/cli-integ-tests/cdk-doubly-nested-stack.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-enablediffnofail.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-failed-deploy-does-not-hang.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-fast-deploy.integtest.js +5 -6
- package/tests/cli-integ-tests/cdk-gc-garbage-collection-deletes-unused-ecr-images.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-gc-garbage-collection-deletes-unused-s3-objects.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-gc-garbage-collection-keeps-in-use-ecr-images.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-gc-garbage-collection-keeps-in-use-s3-objects.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-gc-garbage-collection-tags-unused-ecr-images.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-gc-garbage-collection-tags-unused-s3-objects.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-gc-garbage-collection-untags-in-use-ecr-images.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-gc-garbage-collection-untags-in-use-s3-objects.integtest.js +3 -3
- package/tests/cli-integ-tests/cdk-generating-and-loading-assembly.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-hotswap-deployment-for-ecs-service-detects-failed-deployment-and-errors.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-hotswap-deployment-for-ecs-service-waits-for-deployment-to-complete.integtest.js +7 -6
- package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-appsync-apis-with-many-functions.integtest.js +3 -4
- package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-ecs-service.integtest.js +4 -5
- package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-fn::importvalue-intrinsic.integtest.js +4 -5
- package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-lambda-functions-description-and-environment-variables.integtest.js +4 -5
- package/tests/cli-integ-tests/cdk-hotswap-ecs-deployment-respects-properties-override.integtest.js +6 -7
- package/tests/cli-integ-tests/cdk-iam-diff.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-import-interactive.integtest.js +5 -6
- package/tests/cli-integ-tests/cdk-lib-cli-lib-deploy.integtest.js +3 -4
- package/tests/cli-integ-tests/cdk-lib-cli-lib-list.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-lib-cli-lib-synth.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-lib-security-related-changes-without-a-cli-are-expected-to-fail-when-approval-is-required.integtest.js +2 -3
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-csharp.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-java.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-python.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-typescript.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-csharp.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-java.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-python.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-typescript.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-generates-migrate.json.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-migrate/testcase.d.ts +1 -1
- package/tests/cli-integ-tests/cdk-migrate/testcase.js +4 -6
- package/tests/cli-integ-tests/cdk-nested-stack-with-parameters.integtest.js +3 -4
- package/tests/cli-integ-tests/cdk-refactor-dry-run.integtest.js +41 -0
- package/tests/cli-integ-tests/cdk-requests-go-through-a-proxy-when-configured.integtest.js +3 -4
- package/tests/cli-integ-tests/cdk-sam-can-locally-test-the-synthesized-cdk-application.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-security-related-changes-without-a-cli-are-expected-to-fail.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-skips-notice-refresh.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-ssm-parameter-provider-error.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-stack-in-update_rollback_complete-state-can-be-updated.integtest.js +6 -7
- package/tests/cli-integ-tests/cdk-stage-with-bundled-lambda-function.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-synth---quiet-can-be-specified-in-cdk.json.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-synthing-a-stage-with-errors-can-be-suppressed.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-synthing-a-stage-with-errors-leads-to-failure.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-templates-on-disk-contain-metadata-resource.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-termination-protection.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-test-cdk-rollback---force.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-test-cdk-rollback.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-test-migrate-deployment-for-app-with-localfile-source-in-migrate.json.integtest.js +5 -5
- package/tests/cli-integ-tests/cdk-test-resource-import-with-construct-that-requires-bundling.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-test-resource-import.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-two-ways-of-showing-the-version.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-update-to-stack-in-rollback_complete-state-will-delete-stack-and-create-a-new-one.integtest.js +6 -7
- package/tests/cli-integ-tests/cdk-vpc-lookup.integtest.js +2 -2
- package/tests/cli-integ-tests/proxy.integtest.js +2 -3
- package/tests/init-csharp/init-csharp.integtest.js +4 -4
- package/tests/init-fsharp/init-fsharp.integtest.js +4 -4
- package/tests/init-go/init-go.integtest.js +4 -5
- package/tests/init-java/init-java.integtest.js +3 -3
- package/tests/init-javascript/init-javascript.integtest.js +3 -3
- package/tests/init-python/init-python.integtest.js +3 -3
- package/tests/init-typescript-app/init-typescript-app.integtest.js +3 -3
- package/tests/init-typescript-lib/init-typescript-lib.integtest.js +2 -2
- package/tests/tool-integrations/amplify.integtest.js +6 -6
- package/tests/tool-integrations/with-tool-context.d.ts +5 -5
- package/tests/tool-integrations/with-tool-context.js +1 -1
- package/tests/toolkit-lib-integ-tests/toolkit-can-cdk-deploy.integtest.d.ts +1 -0
- package/tests/toolkit-lib-integ-tests/toolkit-can-cdk-deploy.integtest.js +17 -0
- package/tests/toolkit-lib-integ-tests/toolkit-helpers.d.ts +15 -0
- package/tests/toolkit-lib-integ-tests/toolkit-helpers.js +45 -0
- package/tests/uberpackage/uberpackage.integtest.js +2 -2
- package/.eslintrc.js +0 -9
- package/lib/aws.ts +0 -303
- package/lib/cli/query-github.ts +0 -56
- package/lib/cli/run-suite.ts +0 -153
- package/lib/cli/stage-distribution.ts +0 -262
- package/lib/cli/test-root.ts +0 -3
- package/lib/corking.ts +0 -33
- package/lib/eventually.ts +0 -42
- package/lib/files.ts +0 -80
- package/lib/github.ts +0 -43
- package/lib/index.ts +0 -13
- package/lib/integ-test.ts +0 -110
- package/lib/lists.ts +0 -9
- package/lib/memoize.ts +0 -14
- package/lib/npm.ts +0 -41
- package/lib/package-sources/release-source.d.ts +0 -23
- package/lib/package-sources/release-source.js +0 -71
- package/lib/package-sources/release-source.ts +0 -82
- package/lib/package-sources/repo-source.d.ts +0 -30
- package/lib/package-sources/repo-source.js +0 -97
- package/lib/package-sources/repo-source.ts +0 -112
- package/lib/package-sources/repo-tools/npm.ts +0 -48
- package/lib/package-sources/source.ts +0 -35
- package/lib/package-sources/subprocess.ts +0 -15
- package/lib/process.ts +0 -154
- package/lib/proxy.ts +0 -64
- package/lib/resource-pool.ts +0 -140
- package/lib/resources.ts +0 -4
- package/lib/shell.ts +0 -331
- package/lib/staging/codeartifact.ts +0 -387
- package/lib/staging/maven.ts +0 -95
- package/lib/staging/npm.ts +0 -62
- package/lib/staging/nuget.ts +0 -75
- package/lib/staging/parallel-shell.ts +0 -51
- package/lib/staging/pypi.ts +0 -50
- package/lib/staging/usage-dir.ts +0 -99
- package/lib/with-aws.ts +0 -111
- package/lib/with-cdk-app.ts +0 -847
- package/lib/with-cli-lib.ts +0 -150
- package/lib/with-packages.ts +0 -15
- package/lib/with-sam.ts +0 -295
- package/lib/with-temporary-directory.ts +0 -35
- package/lib/with-timeout.ts +0 -33
- package/lib/xpmutex.ts +0 -218
- 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
- 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
- package/tests/cli-integ-tests/cdk---exclusively-selects-only-selected-stack.integtest.ts +0 -29
- package/tests/cli-integ-tests/cdk-assets/cdk-assets-uses-profile.integtest.ts +0 -92
- package/tests/cli-integ-tests/cdk-assets/smoketest.integtest.ts +0 -82
- package/tests/cli-integ-tests/cdk-automatic-ordering-with-concurrency.integtest.ts +0 -15
- package/tests/cli-integ-tests/cdk-automatic-ordering.integtest.ts +0 -15
- package/tests/cli-integ-tests/cdk-automatic-rollback-if-paused-and---no-rollback-is-removed-from-flags.integtest.ts +0 -40
- package/tests/cli-integ-tests/cdk-automatic-rollback-if-paused-and-change-contains-a-replacement.integtest.ts +0 -40
- package/tests/cli-integ-tests/cdk-automatic-rollback-if-replacement-and---no-rollback-is-removed-from-flags.integtest.ts +0 -29
- package/tests/cli-integ-tests/cdk-bootstrap-a-customized-template-vendor-will-not-overwrite-the-default-template.integtest.ts +0 -42
- package/tests/cli-integ-tests/cdk-bootstrap-add-tags.integtest.ts +0 -26
- package/tests/cli-integ-tests/cdk-bootstrap-can-add-tags-then-update-tags-during-re-bootstrap.integtest.ts +0 -28
- package/tests/cli-integ-tests/cdk-bootstrap-can-and-deploy-if-omitting-execution-policies.integtest.ts +0 -21
- package/tests/cli-integ-tests/cdk-bootstrap-can-bootstrap-without-execution.integtest.ts +0 -22
- package/tests/cli-integ-tests/cdk-bootstrap-can-create-a-legacy-bootstrap-stack-with---public-access-block-configuration-false.integtest.ts +0 -21
- package/tests/cli-integ-tests/cdk-bootstrap-can-create-multiple-legacy-bootstrap-stacks.integtest.ts +0 -27
- package/tests/cli-integ-tests/cdk-bootstrap-can-deploy-modern-synthesized-stack-even-if-bootstrap-stack-name-is-unknown.integtest.ts +0 -24
- package/tests/cli-integ-tests/cdk-bootstrap-can-deploy-with-session-tags-on-the-deploy.integtest.ts +0 -25
- package/tests/cli-integ-tests/cdk-bootstrap-can-deploy-without-execution-role-and-with-session-tags-on-deploy-role.integtest.ts +0 -22
- package/tests/cli-integ-tests/cdk-bootstrap-can-dump-the-template.integtest.ts +0 -32
- package/tests/cli-integ-tests/cdk-bootstrap-can-remove-custompermissionsboundary.integtest.ts +0 -77
- package/tests/cli-integ-tests/cdk-bootstrap-can-remove-trusted-account.integtest.ts +0 -30
- package/tests/cli-integ-tests/cdk-bootstrap-can-use-the-custom-permissions-boundary-(with-slashes)-to-bootstrap.integtest.ts +0 -15
- package/tests/cli-integ-tests/cdk-bootstrap-can-use-the-custom-permissions-boundary-to-bootstrap.integtest.ts +0 -15
- package/tests/cli-integ-tests/cdk-bootstrap-can-use-the-default-permissions-boundary-to-bootstrap.integtest.ts +0 -15
- package/tests/cli-integ-tests/cdk-bootstrap-create-ecr-with-tag-immutability-to-set-on.integtest.ts +0 -34
- package/tests/cli-integ-tests/cdk-bootstrap-deploy-new-style-synthesis-to-new-style-bootstrap-(with-docker-image).integtest.ts +0 -22
- package/tests/cli-integ-tests/cdk-bootstrap-deploy-new-style-synthesis-to-new-style-bootstrap.integtest.ts +0 -22
- package/tests/cli-integ-tests/cdk-bootstrap-deploy-old-style-synthesis-to-new-style-bootstrap.integtest.ts +0 -21
- package/tests/cli-integ-tests/cdk-bootstrap-switch-on-termination-protection.integtest.ts +0 -24
- package/tests/cli-integ-tests/cdk-bootstrap-upgrade-legacy-bootstrap-stack-to-new-bootstrap-stack-while-in-use.integtest.ts +0 -47
- package/tests/cli-integ-tests/cdk-can-still-load-old-assemblies.integtest.ts +0 -57
- 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
- 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
- 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
- package/tests/cli-integ-tests/cdk-cdk-diff---security-only---fail-exits-when-security-changes-are-present.integtest.ts +0 -14
- package/tests/cli-integ-tests/cdk-cdk-diff---security-only---fail-exits-when-security-diff-for-sso-access-control-config.integtest.ts +0 -13
- package/tests/cli-integ-tests/cdk-cdk-diff---security-only---fail-exits-when-security-diff-for-sso-assignment.integtest.ts +0 -13
- 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
- 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
- package/tests/cli-integ-tests/cdk-cdk-diff---security-only-successfully-outputs-sso-access-control-information.integtest.ts +0 -35
- package/tests/cli-integ-tests/cdk-cdk-diff---security-only-successfully-outputs-sso-assignment-information.integtest.ts +0 -37
- package/tests/cli-integ-tests/cdk-cdk-diff---security-only-successfully-outputs-sso-permission-set-with-managed-policy-information.integtest.ts +0 -35
- package/tests/cli-integ-tests/cdk-cdk-diff---security-only-successfully-outputs-sso-permission-set-without-managed-policy-information.integtest.ts +0 -37
- package/tests/cli-integ-tests/cdk-cdk-diff-doesnt-show-resource-metadata-changes.integtest.ts +0 -23
- package/tests/cli-integ-tests/cdk-cdk-diff-shows-resource-metadata-changes-with---no-change-set.integtest.ts +0 -23
- 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
- package/tests/cli-integ-tests/cdk-cdk-diff-with-large-changeset-does-not-fail.integtest.ts +0 -28
- package/tests/cli-integ-tests/cdk-cdk-diff.integtest.ts +0 -18
- package/tests/cli-integ-tests/cdk-cdk-ls---show-dependencies---json---long.integtest.ts +0 -50
- package/tests/cli-integ-tests/cdk-cdk-ls---show-dependencies---json.integtest.ts +0 -95
- package/tests/cli-integ-tests/cdk-cdk-ls.integtest.ts +0 -36
- package/tests/cli-integ-tests/cdk-cdk-notices-are-displayed-correctly.integtest.ts +0 -42
- package/tests/cli-integ-tests/cdk-cdk-notices-with---unacknowledged.integtest.ts +0 -14
- package/tests/cli-integ-tests/cdk-cdk-synth-add-the-metadata-properties-expected-by-sam.integtest.ts +0 -126
- package/tests/cli-integ-tests/cdk-cdk-synth-bundled-functions-as-expected.integtest.ts +0 -80
- package/tests/cli-integ-tests/cdk-cdk-synth.integtest.ts +0 -53
- package/tests/cli-integ-tests/cdk-ci-output-to-stderr.integtest.ts +0 -19
- package/tests/cli-integ-tests/cdk-ci-true-output-to-stdout.integtest.ts +0 -28
- package/tests/cli-integ-tests/cdk-construct-with-builtin-lambda-function.integtest.ts +0 -14
- package/tests/cli-integ-tests/cdk-context-in-stage-propagates-to-top.integtest.ts +0 -20
- package/tests/cli-integ-tests/cdk-context-setting.integtest.ts +0 -33
- package/tests/cli-integ-tests/cdk-deploy---method-direct.integtest.ts +0 -23
- package/tests/cli-integ-tests/cdk-deploy-all-concurrently.integtest.ts +0 -17
- package/tests/cli-integ-tests/cdk-deploy-all.integtest.ts +0 -14
- package/tests/cli-integ-tests/cdk-deploy-and-test-stack-with-lambda-asset.integtest.ts +0 -31
- package/tests/cli-integ-tests/cdk-deploy-deletes-all-notification-arns-when-empty-array-is-passed.integtest.ts +0 -50
- package/tests/cli-integ-tests/cdk-deploy-no-stacks-error.integtest.ts +0 -18
- package/tests/cli-integ-tests/cdk-deploy-no-stacks-with---ignore-no-stacks.integtest.ts +0 -17
- package/tests/cli-integ-tests/cdk-deploy-preserves-existing-notification-arns-when-not-specified.integtest.ts +0 -51
- package/tests/cli-integ-tests/cdk-deploy-stack-with-docker-asset.integtest.ts +0 -11
- package/tests/cli-integ-tests/cdk-deploy-stack-with-lambda-asset-to-object-lock-enabled-asset-bucket.integtest.ts +0 -42
- package/tests/cli-integ-tests/cdk-deploy-stack-without-resource.integtest.ts +0 -32
- package/tests/cli-integ-tests/cdk-deploy-wildcard-with-outputs.integtest.ts +0 -28
- package/tests/cli-integ-tests/cdk-deploy-with-import-existing-resources-true.integtest.ts +0 -29
- package/tests/cli-integ-tests/cdk-deploy-with-method-direct-and-import-existing-resources-fails.integtest.ts +0 -17
- package/tests/cli-integ-tests/cdk-deploy-with-notification-arn-as-flag.integtest.ts +0 -36
- package/tests/cli-integ-tests/cdk-deploy-with-notification-arn-as-prop-and-flag.integtest.ts +0 -45
- package/tests/cli-integ-tests/cdk-deploy-with-notification-arn-as-prop.integtest.ts +0 -37
- package/tests/cli-integ-tests/cdk-deploy-with-parameters-multi.integtest.ts +0 -33
- package/tests/cli-integ-tests/cdk-deploy-with-parameters.integtest.ts +0 -26
- package/tests/cli-integ-tests/cdk-deploy-with-role.integtest.js +0 -97
- package/tests/cli-integ-tests/cdk-deploy-with-role.integtest.ts +0 -119
- package/tests/cli-integ-tests/cdk-deploy-with-wildcard-and-parameters.integtest.ts +0 -22
- package/tests/cli-integ-tests/cdk-deploy-without-execute-a-named-change-set.integtest.ts +0 -36
- package/tests/cli-integ-tests/cdk-deploy-without-import-existing-resources.integtest.ts +0 -28
- package/tests/cli-integ-tests/cdk-deploy.integtest.ts +0 -20
- package/tests/cli-integ-tests/cdk-destroy-interactive.integtest.ts +0 -36
- package/tests/cli-integ-tests/cdk-doubly-nested-stack.integtest.ts +0 -12
- package/tests/cli-integ-tests/cdk-enablediffnofail.integtest.ts +0 -44
- package/tests/cli-integ-tests/cdk-failed-deploy-does-not-hang.integtest.ts +0 -12
- package/tests/cli-integ-tests/cdk-fast-deploy.integtest.ts +0 -41
- package/tests/cli-integ-tests/cdk-gc-garbage-collection-deletes-unused-ecr-images.integtest.ts +0 -48
- package/tests/cli-integ-tests/cdk-gc-garbage-collection-deletes-unused-s3-objects.integtest.ts +0 -51
- package/tests/cli-integ-tests/cdk-gc-garbage-collection-keeps-in-use-ecr-images.integtest.ts +0 -48
- package/tests/cli-integ-tests/cdk-gc-garbage-collection-keeps-in-use-s3-objects.integtest.ts +0 -52
- package/tests/cli-integ-tests/cdk-gc-garbage-collection-tags-unused-ecr-images.integtest.ts +0 -47
- package/tests/cli-integ-tests/cdk-gc-garbage-collection-tags-unused-s3-objects.integtest.ts +0 -63
- package/tests/cli-integ-tests/cdk-gc-garbage-collection-untags-in-use-ecr-images.integtest.ts +0 -55
- package/tests/cli-integ-tests/cdk-gc-garbage-collection-untags-in-use-s3-objects.integtest.ts +0 -63
- package/tests/cli-integ-tests/cdk-generating-and-loading-assembly.integtest.ts +0 -52
- package/tests/cli-integ-tests/cdk-hotswap-deployment-for-ecs-service-detects-failed-deployment-and-errors.integtest.ts +0 -29
- package/tests/cli-integ-tests/cdk-hotswap-deployment-for-ecs-service-waits-for-deployment-to-complete.integtest.ts +0 -45
- package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-appsync-apis-with-many-functions.integtest.ts +0 -36
- package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-ecs-service.integtest.ts +0 -41
- package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-fn::importvalue-intrinsic.integtest.ts +0 -53
- package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-lambda-functions-description-and-environment-variables.integtest.ts +0 -43
- package/tests/cli-integ-tests/cdk-hotswap-ecs-deployment-respects-properties-override.integtest.ts +0 -59
- package/tests/cli-integ-tests/cdk-iam-diff.integtest.ts +0 -23
- package/tests/cli-integ-tests/cdk-import-interactive.integtest.ts +0 -57
- package/tests/cli-integ-tests/cdk-lib-cli-lib-deploy.integtest.ts +0 -32
- package/tests/cli-integ-tests/cdk-lib-cli-lib-list.integtest.ts +0 -12
- package/tests/cli-integ-tests/cdk-lib-cli-lib-synth.integtest.ts +0 -27
- 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
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-csharp.integtest.ts +0 -13
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-java.integtest.ts +0 -14
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-python.integtest.ts +0 -13
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-typescript.integtest.ts +0 -13
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-csharp.integtest.ts +0 -15
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-java.integtest.ts +0 -15
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-python.integtest.ts +0 -15
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-typescript.integtest.ts +0 -15
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-generates-migrate.json.integtest.ts +0 -20
- package/tests/cli-integ-tests/cdk-migrate/testcase.ts +0 -69
- package/tests/cli-integ-tests/cdk-nested-stack-with-parameters.integtest.ts +0 -28
- package/tests/cli-integ-tests/cdk-requests-go-through-a-proxy-when-configured.integtest.ts +0 -39
- package/tests/cli-integ-tests/cdk-sam-can-locally-test-the-synthesized-cdk-application.integtest.ts +0 -25
- package/tests/cli-integ-tests/cdk-security-related-changes-without-a-cli-are-expected-to-fail.integtest.ts +0 -30
- package/tests/cli-integ-tests/cdk-skips-notice-refresh.integtest.ts +0 -26
- package/tests/cli-integ-tests/cdk-ssm-parameter-provider-error.integtest.ts +0 -18
- package/tests/cli-integ-tests/cdk-stack-in-update_rollback_complete-state-can-be-updated.integtest.ts +0 -59
- package/tests/cli-integ-tests/cdk-stage-with-bundled-lambda-function.integtest.ts +0 -13
- package/tests/cli-integ-tests/cdk-synth---quiet-can-be-specified-in-cdk.json.integtest.ts +0 -20
- package/tests/cli-integ-tests/cdk-synthing-a-stage-with-errors-can-be-suppressed.integtest.ts +0 -15
- package/tests/cli-integ-tests/cdk-synthing-a-stage-with-errors-leads-to-failure.integtest.ts +0 -18
- package/tests/cli-integ-tests/cdk-templates-on-disk-contain-metadata-resource.integtest.ts +0 -25
- package/tests/cli-integ-tests/cdk-termination-protection.integtest.ts +0 -19
- package/tests/cli-integ-tests/cdk-test-cdk-rollback---force.integtest.ts +0 -48
- package/tests/cli-integ-tests/cdk-test-cdk-rollback.integtest.ts +0 -38
- package/tests/cli-integ-tests/cdk-test-migrate-deployment-for-app-with-localfile-source-in-migrate.json.integtest.ts +0 -56
- package/tests/cli-integ-tests/cdk-test-resource-import-with-construct-that-requires-bundling.integtest.ts +0 -74
- package/tests/cli-integ-tests/cdk-test-resource-import.integtest.ts +0 -64
- package/tests/cli-integ-tests/cdk-two-ways-of-showing-the-version.integtest.ts +0 -14
- 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
- package/tests/cli-integ-tests/cdk-vpc-lookup.integtest.ts +0 -26
- package/tests/cli-integ-tests/proxy.integtest.ts +0 -168
- package/tests/init-csharp/init-csharp.integtest.ts +0 -15
- package/tests/init-fsharp/init-fsharp.integtest.ts +0 -15
- package/tests/init-go/init-go.integtest.ts +0 -28
- package/tests/init-java/init-java.integtest.ts +0 -14
- package/tests/init-javascript/init-javascript.integtest.ts +0 -58
- package/tests/init-python/init-python.integtest.ts +0 -20
- package/tests/init-typescript-app/init-typescript-app.integtest.ts +0 -67
- package/tests/init-typescript-lib/init-typescript-lib.integtest.ts +0 -13
- package/tests/tool-integrations/amplify.integtest.ts +0 -117
- package/tests/tool-integrations/with-tool-context.ts +0 -14
- package/tests/uberpackage/uberpackage.integtest.ts +0 -11
- /package/tests/cli-integ-tests/{cdk-deploy-with-role.integtest.d.ts → cdk-refactor-dry-run.integtest.d.ts} +0 -0
package/lib/aws.ts
DELETED
|
@@ -1,303 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
CloudFormationClient,
|
|
3
|
-
DeleteStackCommand,
|
|
4
|
-
DescribeStacksCommand,
|
|
5
|
-
UpdateTerminationProtectionCommand,
|
|
6
|
-
type Stack,
|
|
7
|
-
} from '@aws-sdk/client-cloudformation';
|
|
8
|
-
import { DeleteRepositoryCommand, ECRClient } from '@aws-sdk/client-ecr';
|
|
9
|
-
import { ECRPUBLICClient } from '@aws-sdk/client-ecr-public';
|
|
10
|
-
import { ECSClient } from '@aws-sdk/client-ecs';
|
|
11
|
-
import { IAMClient } from '@aws-sdk/client-iam';
|
|
12
|
-
import { LambdaClient } from '@aws-sdk/client-lambda';
|
|
13
|
-
import {
|
|
14
|
-
S3Client,
|
|
15
|
-
DeleteObjectsCommand,
|
|
16
|
-
ListObjectVersionsCommand,
|
|
17
|
-
type ObjectIdentifier,
|
|
18
|
-
DeleteBucketCommand,
|
|
19
|
-
} from '@aws-sdk/client-s3';
|
|
20
|
-
import { SNSClient } from '@aws-sdk/client-sns';
|
|
21
|
-
import { SSOClient } from '@aws-sdk/client-sso';
|
|
22
|
-
import { STSClient, GetCallerIdentityCommand } from '@aws-sdk/client-sts';
|
|
23
|
-
import { fromIni, fromNodeProviderChain } from '@aws-sdk/credential-providers';
|
|
24
|
-
import type { AwsCredentialIdentity, AwsCredentialIdentityProvider } from '@smithy/types';
|
|
25
|
-
import { ConfiguredRetryStrategy } from '@smithy/util-retry';
|
|
26
|
-
interface ClientConfig {
|
|
27
|
-
readonly credentials: AwsCredentialIdentityProvider | AwsCredentialIdentity;
|
|
28
|
-
readonly region: string;
|
|
29
|
-
readonly retryStrategy: ConfiguredRetryStrategy;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export class AwsClients {
|
|
33
|
-
public static async forIdentity(region: string, identity: AwsCredentialIdentity, output: NodeJS.WritableStream) {
|
|
34
|
-
return new AwsClients(region, output, identity);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
public static async forRegion(region: string, output: NodeJS.WritableStream) {
|
|
38
|
-
return new AwsClients(region, output);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
private readonly config: ClientConfig;
|
|
42
|
-
|
|
43
|
-
public readonly cloudFormation: CloudFormationClient;
|
|
44
|
-
public readonly s3: S3Client;
|
|
45
|
-
public readonly ecr: ECRClient;
|
|
46
|
-
public readonly ecrPublic: ECRPUBLICClient;
|
|
47
|
-
public readonly ecs: ECSClient;
|
|
48
|
-
public readonly sso: SSOClient;
|
|
49
|
-
public readonly sns: SNSClient;
|
|
50
|
-
public readonly iam: IAMClient;
|
|
51
|
-
public readonly lambda: LambdaClient;
|
|
52
|
-
public readonly sts: STSClient;
|
|
53
|
-
|
|
54
|
-
constructor(
|
|
55
|
-
public readonly region: string,
|
|
56
|
-
private readonly output: NodeJS.WritableStream,
|
|
57
|
-
public readonly identity?: AwsCredentialIdentity) {
|
|
58
|
-
this.config = {
|
|
59
|
-
credentials: this.identity ?? chainableCredentials(this.region),
|
|
60
|
-
region: this.region,
|
|
61
|
-
retryStrategy: new ConfiguredRetryStrategy(9, (attempt: number) => attempt ** 500),
|
|
62
|
-
};
|
|
63
|
-
this.cloudFormation = new CloudFormationClient(this.config);
|
|
64
|
-
this.s3 = new S3Client(this.config);
|
|
65
|
-
this.ecr = new ECRClient(this.config);
|
|
66
|
-
this.ecrPublic = new ECRPUBLICClient({ ...this.config, region: 'us-east-1' /* public gallery is only available in us-east-1 */ });
|
|
67
|
-
this.ecs = new ECSClient(this.config);
|
|
68
|
-
this.sso = new SSOClient(this.config);
|
|
69
|
-
this.sns = new SNSClient(this.config);
|
|
70
|
-
this.iam = new IAMClient(this.config);
|
|
71
|
-
this.lambda = new LambdaClient(this.config);
|
|
72
|
-
this.sts = new STSClient(this.config);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
public async account(): Promise<string> {
|
|
76
|
-
// Reduce # of retries, we use this as a circuit breaker for detecting no-config
|
|
77
|
-
const stsClient = new STSClient({
|
|
78
|
-
credentials: this.config.credentials,
|
|
79
|
-
region: this.config.region,
|
|
80
|
-
maxAttempts: 2,
|
|
81
|
-
});
|
|
82
|
-
|
|
83
|
-
return (await stsClient.send(new GetCallerIdentityCommand({}))).Account!;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
/**
|
|
87
|
-
* If the clients already has an established identity (via atmosphere for example),
|
|
88
|
-
* return an environment variable map activating it.
|
|
89
|
-
*
|
|
90
|
-
* Otherwise, returns undefined.
|
|
91
|
-
*/
|
|
92
|
-
public identityEnv(): Record<string, string> | undefined {
|
|
93
|
-
return this.identity ? {
|
|
94
|
-
AWS_ACCESS_KEY_ID: this.identity.accessKeyId,
|
|
95
|
-
AWS_SECRET_ACCESS_KEY: this.identity.secretAccessKey,
|
|
96
|
-
AWS_SESSION_TOKEN: this.identity.sessionToken!,
|
|
97
|
-
|
|
98
|
-
// unset any previously used profile because the SDK will prefer
|
|
99
|
-
// this over static env credentials. this is relevant for tests running on CodeBuild
|
|
100
|
-
// because we use a profile as our main credentials source.
|
|
101
|
-
AWS_PROFILE: '',
|
|
102
|
-
} : undefined;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
/**
|
|
106
|
-
* Resolve the current identity or identity provider to credentials
|
|
107
|
-
*/
|
|
108
|
-
public async credentials() {
|
|
109
|
-
const x = this.config.credentials;
|
|
110
|
-
if (isAwsCredentialIdentity(x)) {
|
|
111
|
-
return x;
|
|
112
|
-
}
|
|
113
|
-
return x();
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
public async deleteStacks(...stackNames: string[]) {
|
|
117
|
-
if (stackNames.length === 0) {
|
|
118
|
-
return;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
// We purposely do all stacks serially, because they've been ordered
|
|
122
|
-
// to do the bootstrap stack last.
|
|
123
|
-
for (const stackName of stackNames) {
|
|
124
|
-
await this.cloudFormation.send(
|
|
125
|
-
new UpdateTerminationProtectionCommand({
|
|
126
|
-
EnableTerminationProtection: false,
|
|
127
|
-
StackName: stackName,
|
|
128
|
-
}),
|
|
129
|
-
);
|
|
130
|
-
await this.cloudFormation.send(
|
|
131
|
-
new DeleteStackCommand({
|
|
132
|
-
StackName: stackName,
|
|
133
|
-
}),
|
|
134
|
-
);
|
|
135
|
-
|
|
136
|
-
await retry(this.output, `Deleting ${stackName}`, retry.forSeconds(600), async () => {
|
|
137
|
-
const status = await this.stackStatus(stackName);
|
|
138
|
-
if (status !== undefined && status.endsWith('_FAILED')) {
|
|
139
|
-
throw retry.abort(new Error(`'${stackName}' is in state '${status}'`));
|
|
140
|
-
}
|
|
141
|
-
if (status !== undefined) {
|
|
142
|
-
throw new Error(`Delete of '${stackName}' not complete yet, status: '${status}'`);
|
|
143
|
-
}
|
|
144
|
-
});
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
public async stackStatus(stackName: string): Promise<string | undefined> {
|
|
149
|
-
try {
|
|
150
|
-
return (
|
|
151
|
-
await this.cloudFormation.send(
|
|
152
|
-
new DescribeStacksCommand({
|
|
153
|
-
StackName: stackName,
|
|
154
|
-
}),
|
|
155
|
-
)
|
|
156
|
-
).Stacks?.[0].StackStatus;
|
|
157
|
-
} catch (e: any) {
|
|
158
|
-
if (isStackMissingError(e)) {
|
|
159
|
-
return undefined;
|
|
160
|
-
}
|
|
161
|
-
throw e;
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
public async emptyBucket(bucketName: string, options?: { bypassGovernance?: boolean }) {
|
|
166
|
-
const objects = await this.s3.send(
|
|
167
|
-
new ListObjectVersionsCommand({
|
|
168
|
-
Bucket: bucketName,
|
|
169
|
-
}),
|
|
170
|
-
);
|
|
171
|
-
|
|
172
|
-
const deletes = [...(objects.Versions || []), ...(objects.DeleteMarkers || [])].reduce((acc, obj) => {
|
|
173
|
-
if (typeof obj.VersionId !== 'undefined' && typeof obj.Key !== 'undefined') {
|
|
174
|
-
acc.push({ Key: obj.Key, VersionId: obj.VersionId });
|
|
175
|
-
} else if (typeof obj.Key !== 'undefined') {
|
|
176
|
-
acc.push({ Key: obj.Key });
|
|
177
|
-
}
|
|
178
|
-
return acc;
|
|
179
|
-
}, [] as ObjectIdentifier[]);
|
|
180
|
-
|
|
181
|
-
if (deletes.length === 0) {
|
|
182
|
-
return Promise.resolve();
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
return this.s3.send(
|
|
186
|
-
new DeleteObjectsCommand({
|
|
187
|
-
Bucket: bucketName,
|
|
188
|
-
Delete: {
|
|
189
|
-
Objects: deletes,
|
|
190
|
-
Quiet: false,
|
|
191
|
-
},
|
|
192
|
-
BypassGovernanceRetention: options?.bypassGovernance ? true : undefined,
|
|
193
|
-
}),
|
|
194
|
-
);
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
public async deleteImageRepository(repositoryName: string) {
|
|
198
|
-
await this.ecr.send(
|
|
199
|
-
new DeleteRepositoryCommand({
|
|
200
|
-
repositoryName: repositoryName,
|
|
201
|
-
force: true,
|
|
202
|
-
}),
|
|
203
|
-
);
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
public async deleteBucket(bucketName: string) {
|
|
207
|
-
try {
|
|
208
|
-
await this.emptyBucket(bucketName);
|
|
209
|
-
|
|
210
|
-
await this.s3.send(
|
|
211
|
-
new DeleteBucketCommand({
|
|
212
|
-
Bucket: bucketName,
|
|
213
|
-
}),
|
|
214
|
-
);
|
|
215
|
-
} catch (e: any) {
|
|
216
|
-
if (isBucketMissingError(e)) {
|
|
217
|
-
return;
|
|
218
|
-
}
|
|
219
|
-
throw e;
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
export function isStackMissingError(e: Error) {
|
|
225
|
-
return e.message.indexOf('does not exist') > -1;
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
export function isBucketMissingError(e: Error) {
|
|
229
|
-
return e.message.indexOf('does not exist') > -1;
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
/**
|
|
233
|
-
* Retry an async operation until a deadline is hit.
|
|
234
|
-
*
|
|
235
|
-
* Use `retry.forSeconds()` to construct a deadline relative to right now.
|
|
236
|
-
*
|
|
237
|
-
* Exceptions will cause the operation to retry. Use `retry.abort` to annotate an exception
|
|
238
|
-
* to stop the retry and end in a failure.
|
|
239
|
-
*/
|
|
240
|
-
export async function retry<A>(
|
|
241
|
-
output: NodeJS.WritableStream,
|
|
242
|
-
operation: string,
|
|
243
|
-
deadline: Date,
|
|
244
|
-
block: () => Promise<A>,
|
|
245
|
-
): Promise<A> {
|
|
246
|
-
let i = 0;
|
|
247
|
-
output.write(`💈 ${operation}\n`);
|
|
248
|
-
while (true) {
|
|
249
|
-
try {
|
|
250
|
-
i++;
|
|
251
|
-
const ret = await block();
|
|
252
|
-
output.write(`💈 ${operation}: succeeded after ${i} attempts\n`);
|
|
253
|
-
return ret;
|
|
254
|
-
} catch (e: any) {
|
|
255
|
-
if (e.abort || Date.now() > deadline.getTime()) {
|
|
256
|
-
throw new Error(`${operation}: did not succeed after ${i} attempts: ${e}`);
|
|
257
|
-
}
|
|
258
|
-
output.write(`⏳ ${operation} (${e.message})\n`);
|
|
259
|
-
await sleep(5000);
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
/**
|
|
265
|
-
* Make a deadline for the `retry` function relative to the current time.
|
|
266
|
-
*/
|
|
267
|
-
retry.forSeconds = (seconds: number): Date => {
|
|
268
|
-
return new Date(Date.now() + seconds * 1000);
|
|
269
|
-
};
|
|
270
|
-
|
|
271
|
-
/**
|
|
272
|
-
* Annotate an error to stop the retrying
|
|
273
|
-
*/
|
|
274
|
-
retry.abort = (e: Error): Error => {
|
|
275
|
-
(e as any).abort = true;
|
|
276
|
-
return e;
|
|
277
|
-
};
|
|
278
|
-
|
|
279
|
-
export function outputFromStack(key: string, stack: Stack): string | undefined {
|
|
280
|
-
return (stack.Outputs ?? []).find((o) => o.OutputKey === key)?.OutputValue;
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
export async function sleep(ms: number) {
|
|
284
|
-
return new Promise((ok) => setTimeout(ok, ms));
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
function chainableCredentials(region: string): AwsCredentialIdentityProvider {
|
|
288
|
-
if ((process.env.CODEBUILD_BUILD_ARN || process.env.GITHUB_RUN_ID) && process.env.AWS_PROFILE) {
|
|
289
|
-
// in codebuild we must assume the role that the cdk uses
|
|
290
|
-
// otherwise credentials will just be picked up by the normal sdk
|
|
291
|
-
// heuristics and expire after an hour.
|
|
292
|
-
return fromIni({
|
|
293
|
-
clientConfig: { region },
|
|
294
|
-
});
|
|
295
|
-
}
|
|
296
|
-
|
|
297
|
-
// Otherwise just get what's default
|
|
298
|
-
return fromNodeProviderChain({ clientConfig: { region } });
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
function isAwsCredentialIdentity(x: any): x is AwsCredentialIdentity {
|
|
302
|
-
return Boolean(x && typeof x === 'object' && x.accessKeyId);
|
|
303
|
-
}
|
package/lib/cli/query-github.ts
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import * as yargs from 'yargs';
|
|
2
|
-
import { fetchPreviousVersion } from '../github';
|
|
3
|
-
|
|
4
|
-
async function main() {
|
|
5
|
-
const args = await yargs
|
|
6
|
-
.option('token', {
|
|
7
|
-
descripton: 'GitHub token (default: from environment GITHUB_TOKEN)',
|
|
8
|
-
alias: 't',
|
|
9
|
-
type: 'string',
|
|
10
|
-
requiresArg: true,
|
|
11
|
-
})
|
|
12
|
-
.command('last-release', 'Query the last release', cmd => cmd
|
|
13
|
-
.option('prior-to', {
|
|
14
|
-
description: 'Return the most recent release before the given version',
|
|
15
|
-
alias: 'p',
|
|
16
|
-
type: 'string',
|
|
17
|
-
requiresArg: true,
|
|
18
|
-
})
|
|
19
|
-
.option('major', {
|
|
20
|
-
description: 'Return the most recent release that matches',
|
|
21
|
-
alias: 'm',
|
|
22
|
-
type: 'string',
|
|
23
|
-
requiresArg: true,
|
|
24
|
-
}))
|
|
25
|
-
.demandCommand()
|
|
26
|
-
.help()
|
|
27
|
-
.showHelpOnFail(false)
|
|
28
|
-
.argv;
|
|
29
|
-
|
|
30
|
-
const command = args._[0];
|
|
31
|
-
|
|
32
|
-
const token = args.token ?? process.env.GITHUB_TOKEN;
|
|
33
|
-
if (!token) {
|
|
34
|
-
throw new Error('Either pass --token or set GITHUB_TOKEN.');
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
switch (command) {
|
|
38
|
-
case 'last-release':
|
|
39
|
-
if (args['prior-to'] && args.major) {
|
|
40
|
-
throw new Error('Cannot pass both `--prior-to and --major at the same time');
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
// eslint-disable-next-line no-console
|
|
44
|
-
console.log(await fetchPreviousVersion(token, {
|
|
45
|
-
priorTo: args['prior-to'],
|
|
46
|
-
majorVersion: args.major,
|
|
47
|
-
}));
|
|
48
|
-
break;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
main().catch(e => {
|
|
53
|
-
// eslint-disable-next-line no-console
|
|
54
|
-
console.error(e);
|
|
55
|
-
process.exitCode = 1;
|
|
56
|
-
});
|
package/lib/cli/run-suite.ts
DELETED
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
/* eslint-disable no-console */
|
|
2
|
-
import * as path from 'path';
|
|
3
|
-
import * as jest from 'jest';
|
|
4
|
-
import * as yargs from 'yargs';
|
|
5
|
-
import { ReleasePackageSourceSetup } from '../package-sources/release-source';
|
|
6
|
-
import { RepoPackageSourceSetup, autoFindRoot } from '../package-sources/repo-source';
|
|
7
|
-
import { IPackageSourceSetup } from '../package-sources/source';
|
|
8
|
-
import { serializeForSubprocess } from '../package-sources/subprocess';
|
|
9
|
-
|
|
10
|
-
async function main() {
|
|
11
|
-
const args = await yargs
|
|
12
|
-
.usage('$0 <SUITENAME>')
|
|
13
|
-
.positional('SUITENAME', {
|
|
14
|
-
descripton: 'Name of the test suite to run',
|
|
15
|
-
type: 'string',
|
|
16
|
-
demandOption: true,
|
|
17
|
-
})
|
|
18
|
-
.option('test', {
|
|
19
|
-
descripton: 'Test pattern to selectively run tests',
|
|
20
|
-
alias: 't',
|
|
21
|
-
type: 'string',
|
|
22
|
-
requiresArg: true,
|
|
23
|
-
})
|
|
24
|
-
.option('test-file', {
|
|
25
|
-
description: 'The specific test file to run',
|
|
26
|
-
type: 'string',
|
|
27
|
-
requiresArg: true,
|
|
28
|
-
})
|
|
29
|
-
.option('use-source', {
|
|
30
|
-
descripton: 'Use TypeScript packages from the given source repository (or "auto")',
|
|
31
|
-
alias: 's',
|
|
32
|
-
type: 'string',
|
|
33
|
-
requiresArg: true,
|
|
34
|
-
})
|
|
35
|
-
.option('use-cli-release', {
|
|
36
|
-
descripton: 'Run the current tests against the CLI at the given version',
|
|
37
|
-
alias: 'u',
|
|
38
|
-
type: 'string',
|
|
39
|
-
requiresArg: true,
|
|
40
|
-
})
|
|
41
|
-
.option('auto-source', {
|
|
42
|
-
alias: 'a',
|
|
43
|
-
description: 'Automatically find the source tree from the current working directory',
|
|
44
|
-
type: 'boolean',
|
|
45
|
-
requiresArg: false,
|
|
46
|
-
})
|
|
47
|
-
.option('runInBand', {
|
|
48
|
-
descripton: 'Run all tests in one Node process',
|
|
49
|
-
alias: 'i',
|
|
50
|
-
type: 'boolean',
|
|
51
|
-
})
|
|
52
|
-
.options('framework-version', {
|
|
53
|
-
description: 'Framework version to use, if different than the CLI version (not all suites respect this)',
|
|
54
|
-
alias: 'f',
|
|
55
|
-
type: 'string',
|
|
56
|
-
})
|
|
57
|
-
.options('verbose', {
|
|
58
|
-
alias: 'v',
|
|
59
|
-
description: 'Run in verbose mode',
|
|
60
|
-
type: 'boolean',
|
|
61
|
-
requiresArg: false,
|
|
62
|
-
})
|
|
63
|
-
.options('passWithNoTests', {
|
|
64
|
-
description: 'Allow passing if the test suite is not found (default true when IS_CANARY mode, false otherwise)',
|
|
65
|
-
type: 'boolean',
|
|
66
|
-
requiresArg: false,
|
|
67
|
-
})
|
|
68
|
-
.options('maxWorkers', {
|
|
69
|
-
alias: 'w',
|
|
70
|
-
description: 'Specifies the maximum number of workers the worker-pool will spawn for running tests. We use a sensible default for running cli integ tests.',
|
|
71
|
-
type: 'string',
|
|
72
|
-
requiresArg: true,
|
|
73
|
-
})
|
|
74
|
-
.help()
|
|
75
|
-
.showHelpOnFail(false)
|
|
76
|
-
.argv;
|
|
77
|
-
|
|
78
|
-
const suiteName = args._[0] as string;
|
|
79
|
-
if (!suiteName) {
|
|
80
|
-
throw new Error('Usage: run-suite <SUITENAME>');
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
let packageSource: undefined | IPackageSourceSetup;
|
|
84
|
-
function usePackageSource(s: IPackageSourceSetup) {
|
|
85
|
-
if (packageSource) {
|
|
86
|
-
throw new Error('Cannot specify two package sources');
|
|
87
|
-
}
|
|
88
|
-
packageSource = s;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
if (args['use-source'] || args['auto-source']) {
|
|
92
|
-
if (args['framework-version']) {
|
|
93
|
-
throw new Error('Cannot use --framework-version with --use-source');
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
const root = args['use-source'] && args['use-source'] !== 'auto'
|
|
97
|
-
? args['use-source']
|
|
98
|
-
: await autoFindRoot();
|
|
99
|
-
|
|
100
|
-
usePackageSource(new RepoPackageSourceSetup(root));
|
|
101
|
-
} else if (args['use-cli-release']) {
|
|
102
|
-
usePackageSource(new ReleasePackageSourceSetup(args['use-cli-release'], args['framework-version']));
|
|
103
|
-
}
|
|
104
|
-
if (!packageSource) {
|
|
105
|
-
throw new Error('Specify either --use-source or --use-cli-release');
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
console.log(`Package source: ${packageSource.description}`);
|
|
109
|
-
console.log(`Test suite: ${suiteName}`);
|
|
110
|
-
console.log(`Test version: ${thisPackageVersion()}`);
|
|
111
|
-
|
|
112
|
-
await packageSource.prepare();
|
|
113
|
-
serializeForSubprocess(packageSource);
|
|
114
|
-
|
|
115
|
-
if (args.verbose) {
|
|
116
|
-
process.env.VERBOSE = '1';
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
// Motivation behind this behavior: when adding a new test suite to the pipeline, because of the way our
|
|
120
|
-
// Pipeline package works, the suite would be added to the pipeline AND as a canary immediately. The canary
|
|
121
|
-
// would fail until the package was actually released, so for canaries we make an exception so that the initial
|
|
122
|
-
// canary would succeed even if the suite wasn't yet available. The fact that the suite is not optional in
|
|
123
|
-
// the pipeline protects us from typos.
|
|
124
|
-
const passWithNoTests = args.passWithNoTests ?? !!process.env.IS_CANARY;
|
|
125
|
-
|
|
126
|
-
// Communicate with the config file (integ.jest.config.js)
|
|
127
|
-
process.env.TEST_SUITE_NAME = suiteName;
|
|
128
|
-
|
|
129
|
-
try {
|
|
130
|
-
await jest.run([
|
|
131
|
-
'--randomize',
|
|
132
|
-
...args.runInBand ? ['-i'] : [],
|
|
133
|
-
...args.test ? ['-t', args.test] : [],
|
|
134
|
-
...args.verbose ? ['--verbose'] : [],
|
|
135
|
-
...args.maxWorkers ? [`--maxWorkers=${args.maxWorkers}`] : [],
|
|
136
|
-
...passWithNoTests ? ['--passWithNoTests'] : [],
|
|
137
|
-
...args['test-file'] ? [args['test-file']] : [],
|
|
138
|
-
], path.resolve(__dirname, '..', '..', 'resources', 'integ.jest.config.js'));
|
|
139
|
-
} finally {
|
|
140
|
-
await packageSource.cleanup();
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
function thisPackageVersion(): string {
|
|
145
|
-
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
146
|
-
return require('../../package.json').version;
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
main().catch(e => {
|
|
150
|
-
// eslint-disable-next-line no-console
|
|
151
|
-
console.error(e);
|
|
152
|
-
process.exitCode = 1;
|
|
153
|
-
});
|