@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.
- package/lib/aws.js +6 -9
- package/lib/cli/query-github.js +2 -3
- package/lib/cli/run-suite.js +2 -3
- package/lib/cli/stage-distribution.js +4 -4
- 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/package-sources/release-source.d.ts +1 -1
- package/lib/package-sources/release-source.js +2 -3
- package/lib/package-sources/repo-source.d.ts +1 -1
- package/lib/package-sources/repo-source.js +1 -1
- package/lib/package-sources/repo-tools/npm.js +4 -5
- package/lib/package-sources/subprocess.d.ts +1 -1
- package/lib/package-sources/subprocess.js +1 -1
- package/lib/process.js +5 -6
- package/lib/proxy.d.ts +1 -1
- package/lib/proxy.js +2 -2
- package/lib/resource-pool.js +5 -3
- package/lib/shell.d.ts +3 -3
- package/lib/shell.js +8 -12
- package/lib/staging/codeartifact.js +8 -11
- 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/with-aws.d.ts +2 -2
- package/lib/with-aws.js +5 -4
- package/lib/with-cdk-app.d.ts +7 -5
- package/lib/with-cdk-app.js +28 -33
- package/lib/with-cli-lib.d.ts +4 -3
- package/lib/with-cli-lib.js +1 -1
- package/lib/with-packages.d.ts +1 -1
- package/lib/with-packages.js +1 -1
- package/lib/with-sam.d.ts +3 -3
- package/lib/with-sam.js +4 -7
- package/lib/with-temporary-directory.d.ts +1 -1
- package/lib/with-temporary-directory.js +1 -1
- package/lib/xpmutex.js +5 -3
- package/npm-shrinkwrap.json +8722 -0
- package/package.json +11 -7
- package/resources/cdk-apps/refactoring/cdk.json +7 -0
- package/resources/cdk-apps/refactoring/refactoring.js +18 -0
- package/test-reports/junit.xml +15 -0
- package/tests/cli-integ-tests/cdk-assets/cdk-assets-uses-profile.integtest.js +11 -11
- package/tests/cli-integ-tests/cdk-assets/smoketest.integtest.js +9 -9
- package/tests/cli-integ-tests/cdk-bootstrap-add-tags.integtest.js +2 -3
- package/tests/cli-integ-tests/cdk-bootstrap-can-add-tags-then-update-tags-during-re-bootstrap.integtest.js +2 -3
- package/tests/cli-integ-tests/cdk-bootstrap-can-bootstrap-without-execution.integtest.js +2 -3
- package/tests/cli-integ-tests/cdk-bootstrap-can-create-a-legacy-bootstrap-stack-with---public-access-block-configuration-false.integtest.js +2 -3
- package/tests/cli-integ-tests/cdk-bootstrap-can-create-multiple-legacy-bootstrap-stacks.integtest.js +2 -3
- package/tests/cli-integ-tests/cdk-bootstrap-can-remove-custompermissionsboundary.integtest.js +4 -6
- package/tests/cli-integ-tests/cdk-bootstrap-can-remove-trusted-account.integtest.js +2 -3
- package/tests/cli-integ-tests/cdk-bootstrap-create-ecr-with-tag-immutability-to-set-on.integtest.js +4 -5
- package/tests/cli-integ-tests/cdk-bootstrap-switch-on-termination-protection.integtest.js +2 -3
- package/tests/cli-integ-tests/cdk-ci-true-output-to-stdout.integtest.js +1 -1
- package/tests/cli-integ-tests/cdk-deploy---method-direct.integtest.js +2 -3
- package/tests/cli-integ-tests/cdk-deploy-and-test-stack-with-lambda-asset.integtest.js +3 -4
- package/tests/cli-integ-tests/cdk-deploy-deletes-all-notification-arns-when-empty-array-is-passed.integtest.js +3 -4
- package/tests/cli-integ-tests/cdk-deploy-preserves-existing-notification-arns-when-not-specified.integtest.js +2 -3
- package/tests/cli-integ-tests/cdk-deploy-with-import-existing-resources-true.integtest.js +2 -3
- package/tests/cli-integ-tests/cdk-deploy-with-notification-arn-as-flag.integtest.js +2 -3
- package/tests/cli-integ-tests/cdk-deploy-with-notification-arn-as-prop-and-flag.integtest.js +2 -3
- package/tests/cli-integ-tests/cdk-deploy-with-notification-arn-as-prop.integtest.js +2 -3
- package/tests/cli-integ-tests/cdk-deploy-with-parameters-multi.integtest.js +3 -4
- package/tests/cli-integ-tests/cdk-deploy-with-parameters.integtest.js +2 -3
- package/tests/cli-integ-tests/cdk-deploy-without-execute-a-named-change-set.integtest.js +2 -3
- package/tests/cli-integ-tests/cdk-deploy-without-import-existing-resources.integtest.js +2 -3
- package/tests/cli-integ-tests/cdk-deploy.integtest.js +2 -3
- package/tests/cli-integ-tests/cdk-destroy-interactive.integtest.js +6 -7
- package/tests/cli-integ-tests/cdk-fast-deploy.integtest.js +4 -5
- package/tests/cli-integ-tests/cdk-gc-garbage-collection-untags-in-use-s3-objects.integtest.js +2 -2
- package/tests/cli-integ-tests/cdk-hotswap-deployment-for-ecs-service-waits-for-deployment-to-complete.integtest.js +6 -5
- package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-appsync-apis-with-many-functions.integtest.js +2 -3
- package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-ecs-service.integtest.js +3 -4
- package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-fn::importvalue-intrinsic.integtest.js +3 -4
- package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-lambda-functions-description-and-environment-variables.integtest.js +3 -4
- package/tests/cli-integ-tests/cdk-hotswap-ecs-deployment-respects-properties-override.integtest.js +5 -6
- package/tests/cli-integ-tests/cdk-import-interactive.integtest.js +5 -6
- package/tests/cli-integ-tests/cdk-lib-cli-lib-deploy.integtest.js +2 -3
- 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
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-csharp.integtest.js +1 -1
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-java.integtest.js +1 -1
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-python.integtest.js +1 -1
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-typescript.integtest.js +1 -1
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-csharp.integtest.js +1 -1
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-java.integtest.js +1 -1
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-python.integtest.js +1 -1
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-typescript.integtest.js +1 -1
- package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-generates-migrate.json.integtest.js +1 -1
- 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 +2 -3
- package/tests/cli-integ-tests/cdk-refactor-dry-run.integtest.d.ts +1 -0
- 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 +2 -3
- package/tests/cli-integ-tests/cdk-stack-in-update_rollback_complete-state-can-be-updated.integtest.js +5 -6
- package/tests/cli-integ-tests/cdk-test-migrate-deployment-for-app-with-localfile-source-in-migrate.json.integtest.js +4 -4
- 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
- package/tests/cli-integ-tests/proxy.integtest.js +2 -3
- package/tests/init-go/init-go.integtest.js +2 -3
- package/tests/init-typescript-app/init-typescript-app.integtest.js +1 -1
- package/tests/tool-integrations/amplify.integtest.js +4 -4
- package/tests/tool-integrations/with-tool-context.d.ts +5 -5
- package/tests/tool-integrations/with-tool-context.js +1 -1
- 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.ts +0 -82
- 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.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
|
@@ -27,7 +27,7 @@ const TIMEOUT = 1800000;
|
|
|
27
27
|
await shell.shell(['npx', 'ampx', 'sandbox', '--once'], {
|
|
28
28
|
modEnv: {
|
|
29
29
|
AWS_REGION: context.aws.region,
|
|
30
|
-
...awsCreds
|
|
30
|
+
...awsCreds,
|
|
31
31
|
},
|
|
32
32
|
});
|
|
33
33
|
try {
|
|
@@ -38,7 +38,7 @@ const TIMEOUT = 1800000;
|
|
|
38
38
|
await shell.shell(['npx', 'ampx', 'sandbox', 'delete', '--yes'], {
|
|
39
39
|
modEnv: {
|
|
40
40
|
AWS_REGION: context.aws.region,
|
|
41
|
-
...awsCreds
|
|
41
|
+
...awsCreds,
|
|
42
42
|
},
|
|
43
43
|
});
|
|
44
44
|
}
|
|
@@ -61,7 +61,7 @@ async function mutateAmplifyDepOnCdk(context, cliVersion, libVersion) {
|
|
|
61
61
|
const packageJson = JSON.parse(await fs_1.promises.readFile(packageJsonFile, { encoding: 'utf-8' }));
|
|
62
62
|
assertIsObject(packageJson);
|
|
63
63
|
packageJson.overrides = {
|
|
64
|
-
|
|
64
|
+
'aws-cdk-lib': libVersion,
|
|
65
65
|
};
|
|
66
66
|
await fs_1.promises.writeFile(packageJsonFile, JSON.stringify(packageJson, undefined, 2), { encoding: 'utf-8' });
|
|
67
67
|
}
|
|
@@ -98,4 +98,4 @@ function assertIsStringArray(xs) {
|
|
|
98
98
|
throw new Error(`Expected list of strings, got ${JSON.stringify(xs)}`);
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1wbGlmeS5pbnRlZ3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhbXBsaWZ5LmludGVndGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDJCQUFvQztBQUNwQyw2QkFBNkI7QUFDN0IsMkRBQXNEO0FBQ3RELG1DQUE4RTtBQUU5RSxNQUFNLE9BQU8sR0FBRyxPQUFRLENBQUM7QUFFekIsSUFBQSxlQUFTLEVBQUMscUJBQXFCLEVBQUUsSUFBQSxtQ0FBZSxFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUNqRSxNQUFNLEtBQUssR0FBRyxpQkFBVyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUUvQyx3RUFBd0U7SUFDeEUsc0ZBQXNGO0lBQ3RGLEVBQUU7SUFFRixnRkFBZ0Y7SUFDaEYsNENBQTRDO0lBQzVDLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN6QyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSx1QkFBdUIsQ0FBQyxDQUFDLENBQUM7SUFDN0UsMkVBQTJFO0lBQzNFLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLE1BQU0scUJBQXFCLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLHlCQUF5QixFQUFFLENBQUMsQ0FBQztJQUUzSCx3RUFBd0U7SUFDeEUsaUNBQWlDO0lBQ2pDLEVBQUU7SUFFRixnRkFBZ0Y7SUFDaEYsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsU0FBUyxD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Q0FBQyxDQUFDO0lBQ3pFLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcHJvbWlzZXMgYXMgZnMgfSBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgd2l0aFRvb2xDb250ZXh0IH0gZnJvbSAnLi93aXRoLXRvb2wtY29udGV4dCc7XG5pbXBvcnQgeyBpbnRlZ1Rlc3QsIFNoZWxsSGVscGVyLCBUZW1wb3JhcnlEaXJlY3RvcnlDb250ZXh0IH0gZnJvbSAnLi4vLi4vbGliJztcblxuY29uc3QgVElNRU9VVCA9IDE4MDBfMDAwO1xuXG5pbnRlZ1Rlc3QoJ2FtcGxpZnkgaW50ZWdyYXRpb24nLCB3aXRoVG9vbENvbnRleHQoYXN5bmMgKGNvbnRleHQpID0+IHtcbiAgY29uc3Qgc2hlbGwgPSBTaGVsbEhlbHBlci5mcm9tQ29udGV4dChjb250ZXh0KTtcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgLy8gIE1ha2Ugc3VyZSB0aGF0IGNyZWF0ZS1hbXBsaWZ5IGluc3RhbGxzIHRoZSByaWdodCB2ZXJzaW9ucyBvZiB0aGUgQ0xJIGFuZCBmcmFtZXdvcmtcbiAgLy9cblxuICAvLyBJbnN0YWxsIGBjcmVhdGUtYW1wbGlmeWAgd2l0aG91dCBydW5uaW5nIGl0LCB0aGVuIGhhY2sgdGhlIGpzb24gZmlsZSB3aXRoIHRoZVxuICAvLyBwYWNrYWdlIHZlcnNpb25zIGluIGl0IGJlZm9yZSB3ZSBleGVjdXRlLlxuICBhd2FpdCBzaGVsbC5zaGVsbChbJ25wbScsICdpbml0JywgJy15J10pO1xuICBhd2FpdCBzaGVsbC5zaGVsbChbJ25wbScsICdpbnN0YWxsJywgJy0tc2F2ZS1kZXYnLCAnY3JlYXRlLWFtcGxpZnlAbGF0ZXN0J10pO1xuICAvLyBUaGlzIHdpbGwgY3JlYXRlICdwYWNrYWdlLmpzb24nIGltcGxpY2F0aW5nIGEgY2VydGFpbiB2ZXJzaW9uIG9mIHRoZSBDREtcbiAgYXdhaXQgc2hlbGwuc2hlbGwoWyducG0nLCAnY29uZmlnJywgJ3NldCcsICdzYXZlLWV4YWN0JywgJ3RydWUnXSk7XG4gIGF3YWl0IG11dGF0ZUFtcGxpZnlEZXBPbkNkayhjb250ZXh0LCBjb250ZXh0LnBhY2thZ2VzLnJlcXVlc3RlZENsaVZlcnNpb24oKSwgY29udGV4dC5wYWNrYWdlcy5yZXF1ZXN0ZWRGcmFtZXdvcmtWZXJzaW9uKCkpO1xuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAvLyAgUnVuIHRoZSBgbnBtIGNyZWF0ZWAgd29ya2Zsb3dcbiAgLy9cblxuICAvLyBJIHRlc3RlZCB0byBjb25maXJtIHRoYXQgdGhpcyB3aWxsIHVzZSB0aGUgbG9jYWxseSBpbnN0YWxsZWQgYGNyZWF0ZS1hbXBsaWZ5YFxuICBhd2FpdCBzaGVsbC5zaGVsbChbJ25wbScsICdjcmVhdGUnLCAnLXknLCAnYW1wbGlmeSddKTtcbiAgYXdhaXQgc2hlbGwuc2hlbGwoWyducHgnLCAnYW1weCcsICdjb25maWd1cmUnLCAndGVsZW1ldHJ5JywgJ2Rpc2FibGUnXSk7XG5cbiAgY29uc3QgYXdzQ3JlZHMgPSBjb250ZXh0LmF3cy5pZGVudGl0eUVudigpO1xuXG4gIGF3YWl0IHNoZWxsLnNoZWxsKFsnbnB4JywgJ2FtcHgnLCAnc2FuZGJveCcsICctLW9uY2UnXSwge1xuICAgIG1vZEVudjoge1xuICAgICAgQVdTX1JFR0lPTjogY29udGV4dC5hd3MucmVnaW9uLFxuICAgICAgLi4uYXdzQ3JlZHNcbiAgICB9LFxuICB9KTtcbiAgdHJ5IHtcblxuICAgIC8vIEZ1dHVyZSBjb2RlIGdvZXMgaGVyZSwgcHV0dGluZyB0aGUgdHJ5L2ZpbmFsbHkgaGVyZSBhbHJlYWR5IHNvIGl0IGRvZXNuJ3RcbiAgICAvLyBnZXQgZm9yZ290dGVuLlxuXG4gIH0gZmluYWxseSB7XG4gICAgYXdhaXQgc2hlbGwuc2hlbGwoWyducHgnLCAnYW1weCcsICdzYW5kYm94JywgJ2RlbGV0ZScsICctLXllcyddLCB7XG4gICAgICBtb2RFbnY6IHtcbiAgICAgICAgQVdTX1JFR0lPTjogY29udGV4dC5hd3MucmVnaW9uLFxuICAgICAgICAuLi5hd3NDcmVkc1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufSksIFRJTUVPVVQpO1xuXG5hc3luYyBmdW5jdGlvbiBtdXRhdGVBbXBsaWZ5RGVwT25DZGsoY29udGV4dDogVGVtcG9yYXJ5RGlyZWN0b3J5Q29udGV4dCwgY2xpVmVyc2lvbjogc3RyaW5nLCBsaWJWZXJzaW9uOiBzdHJpbmcpIHtcbiAgLy8gZGVmYXVsdF9wYWNrYWdlcy5qc29uIGlzIHdoZXJlIGNyZWF0ZS1hbXBsaWZ5IHJlYWRzIHdoZW4gaW5zdGFsbGluZyBucG0gZGVwZW5kZW5jaWVzXG4gIGNvbnN0IGFtcGxpZnlEZXBGaWxlID0gcGF0aC5qb2luKGNvbnRleHQuaW50ZWdUZXN0RGlyLCAnbm9kZV9tb2R1bGVzJywgJ2NyZWF0ZS1hbXBsaWZ5JywgJ2xpYicsICdkZWZhdWx0X3BhY2thZ2VzLmpzb24nKTtcbiAgY29uc3QgYW1wbGlmeURlcEpzb246IHVua25vd24gPSBKU09OLnBhcnNlKGF3YWl0IGZzLnJlYWRGaWxlKGFtcGxpZnlEZXBGaWxlLCB7IGVuY29kaW5nOiAndXRmLTgnIH0pKTtcblxuICAvLyBCZSBleHRyYSBwYXJhbm9pZCBhYm91dCB0aGUgdHlwZXMgaGVyZSwgc2luY2Ugd2UgZG9uJ3QgZnVsbHkgY29udHJvbCB0aGVtXG4gIGFzc2VydElzT2JqZWN0KGFtcGxpZnlEZXBKc29uKTtcbiAgYXNzZXJ0SXNTdHJpbmdBcnJheShhbXBsaWZ5RGVwSnNvbi5kZWZhdWx0RGV2UGFja2FnZXMpO1xuXG4gIC8vIEFtcGxpZnkgaXMgcmVtb3ZpbmcgdGhlIGRlcGVuZGVuY3kgb24gYXdzLWNkaywgc2luY2UgQW1wbGlmeSBpcyBub3cgdXNpbmcgdGhlIHRvb2xraXQtbGliXG4gIC8vIFRvIHByZXBhcmUgZm9yIHRoaXMgY2hhbmdlLCB3ZSBuZWVkIGFsbG93IGJvdGggc2l0dWF0aW9uczogYXdzLWNkayBiZWluZyBsaXN0ZWQgYW5kIG5vdCBiZWluZyBsaXN0ZWRcbiAgLy8gRml4IGlzIHRvIHNpbXBseSBhbGxvdyB0aGUgcmVwbGFjZSBvcGVyYXRpb24gdG8gYWxzbyBOT1QgcmVwbGFjZSB0aGUgdmVyc2lvblxuICAvLyBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MtYW1wbGlmeS9hbXBsaWZ5LWJhY2tlbmQvcHVsbC8yNjE0XG4gIHJlcGxhY2VQYWNrYWdlVmVyc2lvbkluKCdhd3MtY2RrJywgY2xpVmVyc2lvbiwgYW1wbGlmeURlcEpzb24uZGVmYXVsdERldlBhY2thZ2VzLCBmYWxzZSk7XG4gIHJlcGxhY2VQYWNrYWdlVmVyc2lvbkluKCdhd3MtY2RrLWxpYicsIGxpYlZlcnNpb24sIGFtcGxpZnlEZXBKc29uLmRlZmF1bHREZXZQYWNrYWdlcyk7XG5cbiAgYXdhaXQgZnMud3JpdGVGaWxlKGFtcGxpZnlEZXBGaWxlLCBKU09OLnN0cmluZ2lmeShhbXBsaWZ5RGVwSnNvbiwgdW5kZWZpbmVkLCAyKSwgeyBlbmNvZGluZzogJ3V0Zi04JyB9KTtcblxuICBjb25zdCBwYWNrYWdlSnNvbkZpbGUgPSBwYXRoLmpvaW4oY29udGV4dC5pbnRlZ1Rlc3REaXIsICdwYWNrYWdlLmpzb24nKTtcbiAgY29uc3QgcGFja2FnZUpzb246IHVua25vd24gPSBKU09OLnBhcnNlKGF3YWl0IGZzLnJlYWRGaWxlKHBhY2thZ2VKc29uRmlsZSwgeyBlbmNvZGluZzogJ3V0Zi04JyB9KSk7XG5cbiAgYXNzZXJ0SXNPYmplY3QocGFja2FnZUpzb24pO1xuICBwYWNrYWdlSnNvbi5vdmVycmlkZXMgPSB7XG4gICAgXCJhd3MtY2RrLWxpYlwiOiBsaWJWZXJzaW9uLFxuICB9O1xuICBhd2FpdCBmcy53cml0ZUZpbGUocGFja2FnZUpzb25GaWxlLCBKU09OLnN0cmluZ2lmeShwYWNrYWdlSnNvbiwgdW5kZWZpbmVkLCAyKSwgeyBlbmNvZGluZzogJ3V0Zi04JyB9KVxufVxuXG4vKipcbiAqIE11dGFibHkgdXBkYXRlIHRoZSBnaXZlbiBzdHJpbmcgYXJyYXksIHJlcGxhY2luZyB0aGUgdmVyc2lvbiBvZiBwYWNrYWdlcyB3aXRoIHRoZSBnaXZlbiBuYW1lXG4gKlxuICogV2UgYXNzdW1lIHRoZSBsaXN0IG9mIHBhY2thZ2VzIGlzIGEgc3RyaW5nIGFycmF5IG9mIHRoZSBmb3JtXG4gKlxuICogYGBgXG4gKiBbXCJwYWNrYWdlQHZlcnNpb25cIiwgXCJwYWNrYWdlQHZlcnNpb25cIiwgLi4uXVxuICogYGBgXG4gKlxuICogSXQncyBhIGZhaWx1cmUgaWYgd2UgZG9uJ3QgZmluZCBhbiBlbnRyeSB0byB1cGRhdGUsIHVubGVzcyB3ZSBleHBsaWNpdGx5IHBhc3MgYW4gb3B0aW9uIHRvIHNheSB0aGF0J3Mgb2theS5cbiAqL1xuZnVuY3Rpb24gcmVwbGFjZVBhY2thZ2VWZXJzaW9uSW4ocGFja05hbWU6IHN0cmluZywgdmVyc2lvbjogc3RyaW5nLCB4czogc3RyaW5nW10sIGZhaWxJZk1pc3NpbmcgPSB0cnVlKSB7XG4gIGxldCBkaWRVcGRhdGUgPSBmYWxzZTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCB4cy5sZW5ndGg7IGkrKykge1xuICAgIGlmICh4c1tpXS5zdGFydHNXaXRoKGAke3BhY2tOYW1lfUBgKSkge1xuICAgICAgeHNbaV0gPSBgJHtwYWNrTmFtZX1AJHt2ZXJzaW9ufWA7XG4gICAgICBkaWRVcGRhdGUgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGlmIChmYWlsSWZNaXNzaW5nICYmICFkaWRVcGRhdGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYERpZCBub3QgZmluZCBhIHBhY2thZ2UgdmVyc2lvbiB0byB1cGRhdGUgZm9yICR7cGFja05hbWV9IGluICR7SlNPTi5zdHJpbmdpZnkoeHMpfWApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGFzc2VydElzT2JqZWN0KHhzOiB1bmtub3duKTogYXNzZXJ0cyB4cyBpcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gIGlmICh0eXBlb2YgeHMgIT09ICdvYmplY3QnIHx8IHhzID09PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBvYmplY3QsIGdvdCAke0pTT04uc3RyaW5naWZ5KHhzKX1gKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBhc3NlcnRJc1N0cmluZ0FycmF5KHhzOiB1bmtub3duKTogYXNzZXJ0cyB4cyBpcyBzdHJpbmdbXSB7XG4gIGlmICghQXJyYXkuaXNBcnJheSh4cykgfHwgeHMubGVuZ3RoID09PSAwIHx8IHR5cGVvZiB4c1swXSAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIGxpc3Qgb2Ygc3RyaW5ncywgZ290ICR7SlNPTi5zdHJpbmdpZnkoeHMpfWApO1xuICB9XG59XG4iXX0=
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1wbGlmeS5pbnRlZ3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhbXBsaWZ5LmludGVndGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDJCQUFvQztBQUNwQyw2QkFBNkI7QUFDN0IsMkRBQXNEO0FBRXRELG1DQUFtRDtBQUVuRCxNQUFNLE9BQU8sR0FBRyxPQUFRLENBQUM7QUFFekIsSUFBQSxlQUFTLEVBQUMscUJBQXFCLEVBQUUsSUFBQSxtQ0FBZSxFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUNqRSxNQUFNLEtBQUssR0FBRyxpQkFBVyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUUvQyx3RUFBd0U7SUFDeEUsc0ZBQXNGO0lBQ3RGLEVBQUU7SUFFRixnRkFBZ0Y7SUFDaEYsNENBQTRDO0lBQzVDLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN6QyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSx1QkFBdUIsQ0FBQyxDQUFDLENBQUM7SUFDN0UsMkVBQTJFO0lBQzNFLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLE1BQU0scUJBQXFCLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLHlCQUF5QixFQUFFLENBQUMsQ0FBQztJQUUzSCx3RUFBd0U7SUFDeEUsaUNBQWlDO0lBQ2pDLEVBQUU7SUFFRixnRkFBZ0Y7SUFDaEYsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsU0FBUyxD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Q0FBQyxDQUFDO0lBQ3pFLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcHJvbWlzZXMgYXMgZnMgfSBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgd2l0aFRvb2xDb250ZXh0IH0gZnJvbSAnLi93aXRoLXRvb2wtY29udGV4dCc7XG5pbXBvcnQgdHlwZSB7IFRlbXBvcmFyeURpcmVjdG9yeUNvbnRleHQgfSBmcm9tICcuLi8uLi9saWInO1xuaW1wb3J0IHsgaW50ZWdUZXN0LCBTaGVsbEhlbHBlciB9IGZyb20gJy4uLy4uL2xpYic7XG5cbmNvbnN0IFRJTUVPVVQgPSAxODAwXzAwMDtcblxuaW50ZWdUZXN0KCdhbXBsaWZ5IGludGVncmF0aW9uJywgd2l0aFRvb2xDb250ZXh0KGFzeW5jIChjb250ZXh0KSA9PiB7XG4gIGNvbnN0IHNoZWxsID0gU2hlbGxIZWxwZXIuZnJvbUNvbnRleHQoY29udGV4dCk7XG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vICBNYWtlIHN1cmUgdGhhdCBjcmVhdGUtYW1wbGlmeSBpbnN0YWxscyB0aGUgcmlnaHQgdmVyc2lvbnMgb2YgdGhlIENMSSBhbmQgZnJhbWV3b3JrXG4gIC8vXG5cbiAgLy8gSW5zdGFsbCBgY3JlYXRlLWFtcGxpZnlgIHdpdGhvdXQgcnVubmluZyBpdCwgdGhlbiBoYWNrIHRoZSBqc29uIGZpbGUgd2l0aCB0aGVcbiAgLy8gcGFja2FnZSB2ZXJzaW9ucyBpbiBpdCBiZWZvcmUgd2UgZXhlY3V0ZS5cbiAgYXdhaXQgc2hlbGwuc2hlbGwoWyducG0nLCAnaW5pdCcsICcteSddKTtcbiAgYXdhaXQgc2hlbGwuc2hlbGwoWyducG0nLCAnaW5zdGFsbCcsICctLXNhdmUtZGV2JywgJ2NyZWF0ZS1hbXBsaWZ5QGxhdGVzdCddKTtcbiAgLy8gVGhpcyB3aWxsIGNyZWF0ZSAncGFja2FnZS5qc29uJyBpbXBsaWNhdGluZyBhIGNlcnRhaW4gdmVyc2lvbiBvZiB0aGUgQ0RLXG4gIGF3YWl0IHNoZWxsLnNoZWxsKFsnbnBtJywgJ2NvbmZpZycsICdzZXQnLCAnc2F2ZS1leGFjdCcsICd0cnVlJ10pO1xuICBhd2FpdCBtdXRhdGVBbXBsaWZ5RGVwT25DZGsoY29udGV4dCwgY29udGV4dC5wYWNrYWdlcy5yZXF1ZXN0ZWRDbGlWZXJzaW9uKCksIGNvbnRleHQucGFja2FnZXMucmVxdWVzdGVkRnJhbWV3b3JrVmVyc2lvbigpKTtcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgLy8gIFJ1biB0aGUgYG5wbSBjcmVhdGVgIHdvcmtmbG93XG4gIC8vXG5cbiAgLy8gSSB0ZXN0ZWQgdG8gY29uZmlybSB0aGF0IHRoaXMgd2lsbCB1c2UgdGhlIGxvY2FsbHkgaW5zdGFsbGVkIGBjcmVhdGUtYW1wbGlmeWBcbiAgYXdhaXQgc2hlbGwuc2hlbGwoWyducG0nLCAnY3JlYXRlJywgJy15JywgJ2FtcGxpZnknXSk7XG4gIGF3YWl0IHNoZWxsLnNoZWxsKFsnbnB4JywgJ2FtcHgnLCAnY29uZmlndXJlJywgJ3RlbGVtZXRyeScsICdkaXNhYmxlJ10pO1xuXG4gIGNvbnN0IGF3c0NyZWRzID0gY29udGV4dC5hd3MuaWRlbnRpdHlFbnYoKTtcblxuICBhd2FpdCBzaGVsbC5zaGVsbChbJ25weCcsICdhbXB4JywgJ3NhbmRib3gnLCAnLS1vbmNlJ10sIHtcbiAgICBtb2RFbnY6IHtcbiAgICAgIEFXU19SRUdJT046IGNvbnRleHQuYXdzLnJlZ2lvbixcbiAgICAgIC4uLmF3c0NyZWRzLFxuICAgIH0sXG4gIH0pO1xuICB0cnkge1xuXG4gICAgLy8gRnV0dXJlIGNvZGUgZ29lcyBoZXJlLCBwdXR0aW5nIHRoZSB0cnkvZmluYWxseSBoZXJlIGFscmVhZHkgc28gaXQgZG9lc24ndFxuICAgIC8vIGdldCBmb3Jnb3R0ZW4uXG5cbiAgfSBmaW5hbGx5IHtcbiAgICBhd2FpdCBzaGVsbC5zaGVsbChbJ25weCcsICdhbXB4JywgJ3NhbmRib3gnLCAnZGVsZXRlJywgJy0teWVzJ10sIHtcbiAgICAgIG1vZEVudjoge1xuICAgICAgICBBV1NfUkVHSU9OOiBjb250ZXh0LmF3cy5yZWdpb24sXG4gICAgICAgIC4uLmF3c0NyZWRzLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufSksIFRJTUVPVVQpO1xuXG5hc3luYyBmdW5jdGlvbiBtdXRhdGVBbXBsaWZ5RGVwT25DZGsoY29udGV4dDogVGVtcG9yYXJ5RGlyZWN0b3J5Q29udGV4dCwgY2xpVmVyc2lvbjogc3RyaW5nLCBsaWJWZXJzaW9uOiBzdHJpbmcpIHtcbiAgLy8gZGVmYXVsdF9wYWNrYWdlcy5qc29uIGlzIHdoZXJlIGNyZWF0ZS1hbXBsaWZ5IHJlYWRzIHdoZW4gaW5zdGFsbGluZyBucG0gZGVwZW5kZW5jaWVzXG4gIGNvbnN0IGFtcGxpZnlEZXBGaWxlID0gcGF0aC5qb2luKGNvbnRleHQuaW50ZWdUZXN0RGlyLCAnbm9kZV9tb2R1bGVzJywgJ2NyZWF0ZS1hbXBsaWZ5JywgJ2xpYicsICdkZWZhdWx0X3BhY2thZ2VzLmpzb24nKTtcbiAgY29uc3QgYW1wbGlmeURlcEpzb246IHVua25vd24gPSBKU09OLnBhcnNlKGF3YWl0IGZzLnJlYWRGaWxlKGFtcGxpZnlEZXBGaWxlLCB7IGVuY29kaW5nOiAndXRmLTgnIH0pKTtcblxuICAvLyBCZSBleHRyYSBwYXJhbm9pZCBhYm91dCB0aGUgdHlwZXMgaGVyZSwgc2luY2Ugd2UgZG9uJ3QgZnVsbHkgY29udHJvbCB0aGVtXG4gIGFzc2VydElzT2JqZWN0KGFtcGxpZnlEZXBKc29uKTtcbiAgYXNzZXJ0SXNTdHJpbmdBcnJheShhbXBsaWZ5RGVwSnNvbi5kZWZhdWx0RGV2UGFja2FnZXMpO1xuXG4gIC8vIEFtcGxpZnkgaXMgcmVtb3ZpbmcgdGhlIGRlcGVuZGVuY3kgb24gYXdzLWNkaywgc2luY2UgQW1wbGlmeSBpcyBub3cgdXNpbmcgdGhlIHRvb2xraXQtbGliXG4gIC8vIFRvIHByZXBhcmUgZm9yIHRoaXMgY2hhbmdlLCB3ZSBuZWVkIGFsbG93IGJvdGggc2l0dWF0aW9uczogYXdzLWNkayBiZWluZyBsaXN0ZWQgYW5kIG5vdCBiZWluZyBsaXN0ZWRcbiAgLy8gRml4IGlzIHRvIHNpbXBseSBhbGxvdyB0aGUgcmVwbGFjZSBvcGVyYXRpb24gdG8gYWxzbyBOT1QgcmVwbGFjZSB0aGUgdmVyc2lvblxuICAvLyBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MtYW1wbGlmeS9hbXBsaWZ5LWJhY2tlbmQvcHVsbC8yNjE0XG4gIHJlcGxhY2VQYWNrYWdlVmVyc2lvbkluKCdhd3MtY2RrJywgY2xpVmVyc2lvbiwgYW1wbGlmeURlcEpzb24uZGVmYXVsdERldlBhY2thZ2VzLCBmYWxzZSk7XG4gIHJlcGxhY2VQYWNrYWdlVmVyc2lvbkluKCdhd3MtY2RrLWxpYicsIGxpYlZlcnNpb24sIGFtcGxpZnlEZXBKc29uLmRlZmF1bHREZXZQYWNrYWdlcyk7XG5cbiAgYXdhaXQgZnMud3JpdGVGaWxlKGFtcGxpZnlEZXBGaWxlLCBKU09OLnN0cmluZ2lmeShhbXBsaWZ5RGVwSnNvbiwgdW5kZWZpbmVkLCAyKSwgeyBlbmNvZGluZzogJ3V0Zi04JyB9KTtcblxuICBjb25zdCBwYWNrYWdlSnNvbkZpbGUgPSBwYXRoLmpvaW4oY29udGV4dC5pbnRlZ1Rlc3REaXIsICdwYWNrYWdlLmpzb24nKTtcbiAgY29uc3QgcGFja2FnZUpzb246IHVua25vd24gPSBKU09OLnBhcnNlKGF3YWl0IGZzLnJlYWRGaWxlKHBhY2thZ2VKc29uRmlsZSwgeyBlbmNvZGluZzogJ3V0Zi04JyB9KSk7XG5cbiAgYXNzZXJ0SXNPYmplY3QocGFja2FnZUpzb24pO1xuICBwYWNrYWdlSnNvbi5vdmVycmlkZXMgPSB7XG4gICAgJ2F3cy1jZGstbGliJzogbGliVmVyc2lvbixcbiAgfTtcbiAgYXdhaXQgZnMud3JpdGVGaWxlKHBhY2thZ2VKc29uRmlsZSwgSlNPTi5zdHJpbmdpZnkocGFja2FnZUpzb24sIHVuZGVmaW5lZCwgMiksIHsgZW5jb2Rpbmc6ICd1dGYtOCcgfSk7XG59XG5cbi8qKlxuICogTXV0YWJseSB1cGRhdGUgdGhlIGdpdmVuIHN0cmluZyBhcnJheSwgcmVwbGFjaW5nIHRoZSB2ZXJzaW9uIG9mIHBhY2thZ2VzIHdpdGggdGhlIGdpdmVuIG5hbWVcbiAqXG4gKiBXZSBhc3N1bWUgdGhlIGxpc3Qgb2YgcGFja2FnZXMgaXMgYSBzdHJpbmcgYXJyYXkgb2YgdGhlIGZvcm1cbiAqXG4gKiBgYGBcbiAqIFtcInBhY2thZ2VAdmVyc2lvblwiLCBcInBhY2thZ2VAdmVyc2lvblwiLCAuLi5dXG4gKiBgYGBcbiAqXG4gKiBJdCdzIGEgZmFpbHVyZSBpZiB3ZSBkb24ndCBmaW5kIGFuIGVudHJ5IHRvIHVwZGF0ZSwgdW5sZXNzIHdlIGV4cGxpY2l0bHkgcGFzcyBhbiBvcHRpb24gdG8gc2F5IHRoYXQncyBva2F5LlxuICovXG5mdW5jdGlvbiByZXBsYWNlUGFja2FnZVZlcnNpb25JbihwYWNrTmFtZTogc3RyaW5nLCB2ZXJzaW9uOiBzdHJpbmcsIHhzOiBzdHJpbmdbXSwgZmFpbElmTWlzc2luZyA9IHRydWUpIHtcbiAgbGV0IGRpZFVwZGF0ZSA9IGZhbHNlO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHhzLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKHhzW2ldLnN0YXJ0c1dpdGgoYCR7cGFja05hbWV9QGApKSB7XG4gICAgICB4c1tpXSA9IGAke3BhY2tOYW1lfUAke3ZlcnNpb259YDtcbiAgICAgIGRpZFVwZGF0ZSA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgaWYgKGZhaWxJZk1pc3NpbmcgJiYgIWRpZFVwZGF0ZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgRGlkIG5vdCBmaW5kIGEgcGFja2FnZSB2ZXJzaW9uIHRvIHVwZGF0ZSBmb3IgJHtwYWNrTmFtZX0gaW4gJHtKU09OLnN0cmluZ2lmeSh4cyl9YCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gYXNzZXJ0SXNPYmplY3QoeHM6IHVua25vd24pOiBhc3NlcnRzIHhzIGlzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgaWYgKHR5cGVvZiB4cyAhPT0gJ29iamVjdCcgfHwgeHMgPT09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIG9iamVjdCwgZ290ICR7SlNPTi5zdHJpbmdpZnkoeHMpfWApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGFzc2VydElzU3RyaW5nQXJyYXkoeHM6IHVua25vd24pOiBhc3NlcnRzIHhzIGlzIHN0cmluZ1tdIHtcbiAgaWYgKCFBcnJheS5pc0FycmF5KHhzKSB8fCB4cy5sZW5ndGggPT09IDAgfHwgdHlwZW9mIHhzWzBdICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgbGlzdCBvZiBzdHJpbmdzLCBnb3QgJHtKU09OLnN0cmluZ2lmeSh4cyl9YCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { TestContext } from '../../lib/integ-test';
|
|
2
|
-
import { AwsContext } from '../../lib/with-aws';
|
|
3
|
-
import { DisableBootstrapContext } from '../../lib/with-cdk-app';
|
|
4
|
-
import { PackageContext } from '../../lib/with-packages';
|
|
5
|
-
import { TemporaryDirectoryContext } from '../../lib/with-temporary-directory';
|
|
1
|
+
import type { TestContext } from '../../lib/integ-test';
|
|
2
|
+
import type { AwsContext } from '../../lib/with-aws';
|
|
3
|
+
import type { DisableBootstrapContext } from '../../lib/with-cdk-app';
|
|
4
|
+
import type { PackageContext } from '../../lib/with-packages';
|
|
5
|
+
import type { TemporaryDirectoryContext } from '../../lib/with-temporary-directory';
|
|
6
6
|
/**
|
|
7
7
|
* The default prerequisites for tests running tool integrations
|
|
8
8
|
*/
|
|
@@ -10,4 +10,4 @@ const with_temporary_directory_1 = require("../../lib/with-temporary-directory")
|
|
|
10
10
|
function withToolContext(block) {
|
|
11
11
|
return (0, with_aws_1.withAws)((0, with_temporary_directory_1.withTemporaryDirectory)((0, with_packages_1.withPackages)(block)));
|
|
12
12
|
}
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC10b29sLWNvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ3aXRoLXRvb2wtY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVlBLDBDQUlDO0FBZEQsaURBQTZDO0FBRzdDLDJEQUF1RDtBQUV2RCxpRkFBNEU7QUFFNUU7O0dBRUc7QUFDSCxTQUFnQixlQUFlLENBQzdCLEtBQ2tCO0lBQ2xCLE9BQU8sSUFBQSxrQkFBTyxFQUFDLElBQUEsaURBQXNCLEVBQUMsSUFBQSw0QkFBWSxFQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM5RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBUZXN0Q29udGV4dCB9IGZyb20gJy4uLy4uL2xpYi9pbnRlZy10ZXN0JztcbmltcG9ydCB0eXBlIHsgQXdzQ29udGV4dCB9IGZyb20gJy4uLy4uL2xpYi93aXRoLWF3cyc7XG5pbXBvcnQgeyB3aXRoQXdzIH0gZnJvbSAnLi4vLi4vbGliL3dpdGgtYXdzJztcbmltcG9ydCB0eXBlIHsgRGlzYWJsZUJvb3RzdHJhcENvbnRleHQgfSBmcm9tICcuLi8uLi9saWIvd2l0aC1jZGstYXBwJztcbmltcG9ydCB0eXBlIHsgUGFja2FnZUNvbnRleHQgfSBmcm9tICcuLi8uLi9saWIvd2l0aC1wYWNrYWdlcyc7XG5pbXBvcnQgeyB3aXRoUGFja2FnZXMgfSBmcm9tICcuLi8uLi9saWIvd2l0aC1wYWNrYWdlcyc7XG5pbXBvcnQgdHlwZSB7IFRlbXBvcmFyeURpcmVjdG9yeUNvbnRleHQgfSBmcm9tICcuLi8uLi9saWIvd2l0aC10ZW1wb3JhcnktZGlyZWN0b3J5JztcbmltcG9ydCB7IHdpdGhUZW1wb3JhcnlEaXJlY3RvcnkgfSBmcm9tICcuLi8uLi9saWIvd2l0aC10ZW1wb3JhcnktZGlyZWN0b3J5JztcblxuLyoqXG4gKiBUaGUgZGVmYXVsdCBwcmVyZXF1aXNpdGVzIGZvciB0ZXN0cyBydW5uaW5nIHRvb2wgaW50ZWdyYXRpb25zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3aXRoVG9vbENvbnRleHQ8QSBleHRlbmRzIFRlc3RDb250ZXh0PihcbiAgYmxvY2s6IChjb250ZXh0OiBBICYgVGVtcG9yYXJ5RGlyZWN0b3J5Q29udGV4dCAmIFBhY2thZ2VDb250ZXh0ICYgQXdzQ29udGV4dCAmIERpc2FibGVCb290c3RyYXBDb250ZXh0XG4gICkgPT4gUHJvbWlzZTx2b2lkPikge1xuICByZXR1cm4gd2l0aEF3cyh3aXRoVGVtcG9yYXJ5RGlyZWN0b3J5KHdpdGhQYWNrYWdlcyhibG9jaykpKTtcbn1cbiJdfQ==
|
package/.eslintrc.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
var path = require('path');
|
|
2
|
-
var fs = require('fs');
|
|
3
|
-
var contents = fs.readFileSync(`${__dirname}/.eslintrc.json`, { encoding: 'utf-8' });
|
|
4
|
-
// Strip comments, JSON.parse() doesn't like those
|
|
5
|
-
contents = contents.replace(/^\/\/.*$/m, '');
|
|
6
|
-
var json = JSON.parse(contents);
|
|
7
|
-
// Patch the .json config with something that can only be represented in JS
|
|
8
|
-
json.parserOptions.tsconfigRootDir = __dirname;
|
|
9
|
-
module.exports = json;
|
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
|
-
});
|