From eaf8f53824e5b597a768bdc3eafb55663707797c Mon Sep 17 00:00:00 2001 From: GZ Date: Tue, 30 Jan 2024 03:03:23 -0800 Subject: [PATCH] fix(integ-runner): cannot pass test name after `--language` (#28922) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Current situation: yarn integ allows to run a TS integ file CI doesn’t allow it, which caused confusing issues. What we want instead: Both local integ-runner and CI don’t allow it, so that this issue won’t happen again. To do this, we need to update integ-runner to disable running TS locally. `integ-runner` package json should stay the same as it includes other tests in python and go. Had a previous attempt in this PR https://github.com/aws/aws-cdk/pull/28770, but reverted as it caused an issue, see detail in https://github.com/aws/aws-cdk/pull/28891. BREAKING CHANGE: Parsing of the cli input caused arguments passed after the first instance `--language ` to be interpreted as a language as well. This prevented passing a test name after providing cli options. To overcome this limitation, `integ-runner` now requires an explicit `--language` option for each language you want to include: `integ-runner --language javascript --language python`. This was already documented that way and always the intended way to use this feature. ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license* --- .../framework-integ/package.json | 2 +- .../package.json | 2 +- .../@aws-cdk/aws-amplify-alpha/package.json | 2 +- .../@aws-cdk/aws-appconfig-alpha/package.json | 2 +- .../@aws-cdk/aws-apprunner-alpha/package.json | 2 +- .../@aws-cdk/aws-cloud9-alpha/package.json | 2 +- .../@aws-cdk/aws-codestar-alpha/package.json | 2 +- .../package.json | 2 +- .../@aws-cdk/aws-gamelift-alpha/package.json | 2 +- packages/@aws-cdk/aws-glue-alpha/package.json | 2 +- .../aws-iot-actions-alpha/package.json | 2 +- packages/@aws-cdk/aws-iot-alpha/package.json | 2 +- .../aws-iotevents-actions-alpha/package.json | 2 +- .../@aws-cdk/aws-iotevents-alpha/package.json | 2 +- packages/@aws-cdk/aws-ivs-alpha/package.json | 2 +- .../package.json | 2 +- .../aws-kinesisfirehose-alpha/package.json | 2 +- .../package.json | 2 +- .../@aws-cdk/aws-lambda-go-alpha/package.json | 2 +- .../aws-lambda-python-alpha/package.json | 2 +- .../@aws-cdk/aws-location-alpha/package.json | 2 +- packages/@aws-cdk/aws-msk-alpha/package.json | 2 +- .../@aws-cdk/aws-neptune-alpha/package.json | 2 +- .../@aws-cdk/aws-redshift-alpha/package.json | 2 +- .../aws-route53resolver-alpha/package.json | 2 +- .../aws-s3objectlambda-alpha/package.json | 2 +- .../@aws-cdk/aws-sagemaker-alpha/package.json | 2 +- .../@aws-cdk/aws-scheduler-alpha/package.json | 2 +- .../aws-scheduler-targets-alpha/package.json | 2 +- .../package.json | 2 +- .../@aws-cdk/cdk-cli-wrapper/package.json | 2 +- .../custom-resource-handlers/package.json | 2 +- .../example-construct-library/package.json | 2 +- packages/@aws-cdk/integ-runner/lib/cli.ts | 1 + .../@aws-cdk/integ-tests-alpha/package.json | 2 +- packages/cdk-assets/package.json | 2 +- tools/@aws-cdk/pkglint/lib/rules.ts | 2 +- tools/@aws-cdk/pkglint/lib/util.ts | 19 +++++++++++++++++-- 38 files changed, 54 insertions(+), 38 deletions(-) diff --git a/packages/@aws-cdk-testing/framework-integ/package.json b/packages/@aws-cdk-testing/framework-integ/package.json index 5f34dadd94be6..add5a5e3324e8 100644 --- a/packages/@aws-cdk-testing/framework-integ/package.json +++ b/packages/@aws-cdk-testing/framework-integ/package.json @@ -9,7 +9,7 @@ "lint": "cdk-lint", "pkglint": "pkglint -f", "test": "cdk-test", - "integ": "integ-runner", + "integ": "integ-runner --language javascript", "package": "cdk-package", "build+test": "yarn build && yarn test", "build+extract": "yarn build", diff --git a/packages/@aws-cdk/app-staging-synthesizer-alpha/package.json b/packages/@aws-cdk/app-staging-synthesizer-alpha/package.json index e4cd98f976f19..213f699b80df1 100644 --- a/packages/@aws-cdk/app-staging-synthesizer-alpha/package.json +++ b/packages/@aws-cdk/app-staging-synthesizer-alpha/package.json @@ -48,7 +48,7 @@ "watch": "cdk-watch", "lint": "cdk-lint", "test": "cdk-test", - "integ": "integ-runner", + "integ": "integ-runner --language javascript", "pkglint": "pkglint -f", "package": "cdk-package", "awslint": "cdk-awslint", diff --git a/packages/@aws-cdk/aws-amplify-alpha/package.json b/packages/@aws-cdk/aws-amplify-alpha/package.json index c9d5081fbd328..1083fb762cb0b 100644 --- a/packages/@aws-cdk/aws-amplify-alpha/package.json +++ b/packages/@aws-cdk/aws-amplify-alpha/package.json @@ -50,7 +50,7 @@ "homepage": "https://github.com/aws/aws-cdk", "scripts": { "build": "cdk-build", - "integ": "integ-runner", + "integ": "integ-runner --language javascript", "lint": "cdk-lint", "package": "cdk-package", "awslint": "cdk-awslint", diff --git a/packages/@aws-cdk/aws-appconfig-alpha/package.json b/packages/@aws-cdk/aws-appconfig-alpha/package.json index 363fc7978bb4b..e2eececf64076 100644 --- a/packages/@aws-cdk/aws-appconfig-alpha/package.json +++ b/packages/@aws-cdk/aws-appconfig-alpha/package.json @@ -52,7 +52,7 @@ "watch": "cdk-watch", "lint": "cdk-lint", "test": "cdk-test", - "integ": "integ-runner", + "integ": "integ-runner --language javascript", "pkglint": "pkglint -f", "package": "cdk-package", "awslint": "cdk-awslint", diff --git a/packages/@aws-cdk/aws-apprunner-alpha/package.json b/packages/@aws-cdk/aws-apprunner-alpha/package.json index 48dceb07b9716..7516de997ba72 100644 --- a/packages/@aws-cdk/aws-apprunner-alpha/package.json +++ b/packages/@aws-cdk/aws-apprunner-alpha/package.json @@ -54,7 +54,7 @@ "watch": "cdk-watch", "lint": "cdk-lint", "test": "cdk-test", - "integ": "integ-runner", + "integ": "integ-runner --language javascript", "pkglint": "pkglint -f", "package": "cdk-package", "awslint": "cdk-awslint", diff --git a/packages/@aws-cdk/aws-cloud9-alpha/package.json b/packages/@aws-cdk/aws-cloud9-alpha/package.json index c9e56bf799d95..f134380f61c27 100644 --- a/packages/@aws-cdk/aws-cloud9-alpha/package.json +++ b/packages/@aws-cdk/aws-cloud9-alpha/package.json @@ -52,7 +52,7 @@ "watch": "cdk-watch", "lint": "cdk-lint", "test": "cdk-test", - "integ": "integ-runner", + "integ": "integ-runner --language javascript", "pkglint": "pkglint -f", "package": "cdk-package", "awslint": "cdk-awslint", diff --git a/packages/@aws-cdk/aws-codestar-alpha/package.json b/packages/@aws-cdk/aws-codestar-alpha/package.json index e41fd6b4ee999..28028eaad2285 100644 --- a/packages/@aws-cdk/aws-codestar-alpha/package.json +++ b/packages/@aws-cdk/aws-codestar-alpha/package.json @@ -50,7 +50,7 @@ "homepage": "https://github.com/aws/aws-cdk", "scripts": { "build": "cdk-build", - "integ": "integ-runner", + "integ": "integ-runner --language javascript", "lint": "cdk-lint", "package": "cdk-package", "awslint": "cdk-awslint", diff --git a/packages/@aws-cdk/aws-cognito-identitypool-alpha/package.json b/packages/@aws-cdk/aws-cognito-identitypool-alpha/package.json index d9390f5de3df4..e840c3569e0db 100644 --- a/packages/@aws-cdk/aws-cognito-identitypool-alpha/package.json +++ b/packages/@aws-cdk/aws-cognito-identitypool-alpha/package.json @@ -51,7 +51,7 @@ "watch": "cdk-watch", "lint": "cdk-lint", "test": "cdk-test", - "integ": "integ-runner", + "integ": "integ-runner --language javascript", "pkglint": "pkglint -f", "package": "cdk-package", "awslint": "cdk-awslint", diff --git a/packages/@aws-cdk/aws-gamelift-alpha/package.json b/packages/@aws-cdk/aws-gamelift-alpha/package.json index a6276f4e47315..4ece3eb05b5e7 100644 --- a/packages/@aws-cdk/aws-gamelift-alpha/package.json +++ b/packages/@aws-cdk/aws-gamelift-alpha/package.json @@ -52,7 +52,7 @@ "watch": "cdk-watch", "lint": "cdk-lint", "test": "cdk-test", - "integ": "integ-runner", + "integ": "integ-runner --language javascript", "pkglint": "pkglint -f", "package": "cdk-package", "awslint": "cdk-awslint", diff --git a/packages/@aws-cdk/aws-glue-alpha/package.json b/packages/@aws-cdk/aws-glue-alpha/package.json index a173000ad20c8..6e3b8d76fdf6d 100644 --- a/packages/@aws-cdk/aws-glue-alpha/package.json +++ b/packages/@aws-cdk/aws-glue-alpha/package.json @@ -52,7 +52,7 @@ "watch": "cdk-watch", "lint": "cdk-lint", "test": "cdk-test", - "integ": "integ-runner", + "integ": "integ-runner --language javascript", "pkglint": "pkglint -f", "package": "cdk-package", "awslint": "cdk-awslint", diff --git a/packages/@aws-cdk/aws-iot-actions-alpha/package.json b/packages/@aws-cdk/aws-iot-actions-alpha/package.json index ae7bce924d0d3..af744ef1566eb 100644 --- a/packages/@aws-cdk/aws-iot-actions-alpha/package.json +++ b/packages/@aws-cdk/aws-iot-actions-alpha/package.json @@ -51,7 +51,7 @@ "watch": "cdk-watch", "lint": "cdk-lint", "test": "cdk-test", - "integ": "integ-runner", + "integ": "integ-runner --language javascript", "pkglint": "pkglint -f", "package": "cdk-package", "awslint": "cdk-awslint", diff --git a/packages/@aws-cdk/aws-iot-alpha/package.json b/packages/@aws-cdk/aws-iot-alpha/package.json index 3698c0fce3483..0cc6d4579c02b 100644 --- a/packages/@aws-cdk/aws-iot-alpha/package.json +++ b/packages/@aws-cdk/aws-iot-alpha/package.json @@ -52,7 +52,7 @@ "watch": "cdk-watch", "lint": "cdk-lint", "test": "cdk-test", - "integ": "integ-runner", + "integ": "integ-runner --language javascript", "pkglint": "pkglint -f", "package": "cdk-package", "awslint": "cdk-awslint", diff --git a/packages/@aws-cdk/aws-iotevents-actions-alpha/package.json b/packages/@aws-cdk/aws-iotevents-actions-alpha/package.json index 95e42a2dc1907..f80fa2b03b092 100644 --- a/packages/@aws-cdk/aws-iotevents-actions-alpha/package.json +++ b/packages/@aws-cdk/aws-iotevents-actions-alpha/package.json @@ -44,7 +44,7 @@ "watch": "cdk-watch", "lint": "cdk-lint", "test": "cdk-test", - "integ": "integ-runner", + "integ": "integ-runner --language javascript", "pkglint": "pkglint -f", "package": "cdk-package", "awslint": "cdk-awslint", diff --git a/packages/@aws-cdk/aws-iotevents-alpha/package.json b/packages/@aws-cdk/aws-iotevents-alpha/package.json index 965541812a2c2..f1b57ff8b5668 100644 --- a/packages/@aws-cdk/aws-iotevents-alpha/package.json +++ b/packages/@aws-cdk/aws-iotevents-alpha/package.json @@ -50,7 +50,7 @@ "homepage": "https://github.com/aws/aws-cdk", "scripts": { "build": "cdk-build", - "integ": "integ-runner", + "integ": "integ-runner --language javascript", "lint": "cdk-lint", "package": "cdk-package", "awslint": "cdk-awslint", diff --git a/packages/@aws-cdk/aws-ivs-alpha/package.json b/packages/@aws-cdk/aws-ivs-alpha/package.json index cfea06e5f4e97..b96c0cc606792 100644 --- a/packages/@aws-cdk/aws-ivs-alpha/package.json +++ b/packages/@aws-cdk/aws-ivs-alpha/package.json @@ -53,7 +53,7 @@ "watch": "cdk-watch", "lint": "cdk-lint", "test": "cdk-test", - "integ": "integ-runner", + "integ": "integ-runner --language javascript", "pkglint": "pkglint -f", "package": "cdk-package", "awslint": "cdk-awslint", diff --git a/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/package.json b/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/package.json index bdfef9fdfc964..59b302456397b 100644 --- a/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/package.json +++ b/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/package.json @@ -51,7 +51,7 @@ "watch": "cdk-watch", "lint": "cdk-lint", "test": "cdk-test", - "integ": "integ-runner", + "integ": "integ-runner --language javascript", "pkglint": "pkglint -f", "package": "cdk-package", "awslint": "cdk-awslint", diff --git a/packages/@aws-cdk/aws-kinesisfirehose-alpha/package.json b/packages/@aws-cdk/aws-kinesisfirehose-alpha/package.json index cd145853cfba1..e282c977893be 100644 --- a/packages/@aws-cdk/aws-kinesisfirehose-alpha/package.json +++ b/packages/@aws-cdk/aws-kinesisfirehose-alpha/package.json @@ -52,7 +52,7 @@ "watch": "cdk-watch", "lint": "cdk-lint", "test": "cdk-test", - "integ": "integ-runner", + "integ": "integ-runner --language javascript", "pkglint": "pkglint -f", "package": "cdk-package", "awslint": "cdk-awslint", diff --git a/packages/@aws-cdk/aws-kinesisfirehose-destinations-alpha/package.json b/packages/@aws-cdk/aws-kinesisfirehose-destinations-alpha/package.json index 56a853e8f54ce..272bb56eb0a4b 100644 --- a/packages/@aws-cdk/aws-kinesisfirehose-destinations-alpha/package.json +++ b/packages/@aws-cdk/aws-kinesisfirehose-destinations-alpha/package.json @@ -51,7 +51,7 @@ "watch": "cdk-watch", "lint": "cdk-lint", "test": "cdk-test", - "integ": "integ-runner", + "integ": "integ-runner --language javascript", "pkglint": "pkglint -f", "package": "cdk-package", "awslint": "cdk-awslint", diff --git a/packages/@aws-cdk/aws-lambda-go-alpha/package.json b/packages/@aws-cdk/aws-lambda-go-alpha/package.json index 7761741259709..b3a786b29431a 100644 --- a/packages/@aws-cdk/aws-lambda-go-alpha/package.json +++ b/packages/@aws-cdk/aws-lambda-go-alpha/package.json @@ -53,7 +53,7 @@ "watch": "cdk-watch", "lint": "cdk-lint", "test": "cdk-test", - "integ": "integ-runner", + "integ": "integ-runner --language javascript", "pkglint": "pkglint -f", "package": "cdk-package", "awslint": "cdk-awslint", diff --git a/packages/@aws-cdk/aws-lambda-python-alpha/package.json b/packages/@aws-cdk/aws-lambda-python-alpha/package.json index 90b3be6b3a8c5..3e871d10b0abc 100644 --- a/packages/@aws-cdk/aws-lambda-python-alpha/package.json +++ b/packages/@aws-cdk/aws-lambda-python-alpha/package.json @@ -52,7 +52,7 @@ "watch": "cdk-watch", "lint": "cdk-lint", "test": "cdk-test", - "integ": "integ-runner", + "integ": "integ-runner --language javascript", "pkglint": "pkglint -f", "package": "cdk-package", "awslint": "cdk-awslint", diff --git a/packages/@aws-cdk/aws-location-alpha/package.json b/packages/@aws-cdk/aws-location-alpha/package.json index f2b1178ee2008..2c85110fa399d 100644 --- a/packages/@aws-cdk/aws-location-alpha/package.json +++ b/packages/@aws-cdk/aws-location-alpha/package.json @@ -54,7 +54,7 @@ "watch": "cdk-watch", "lint": "cdk-lint", "test": "cdk-test", - "integ": "integ-runner", + "integ": "integ-runner --language javascript", "pkglint": "pkglint -f", "package": "cdk-package", "awslint": "cdk-awslint", diff --git a/packages/@aws-cdk/aws-msk-alpha/package.json b/packages/@aws-cdk/aws-msk-alpha/package.json index 8456766d2f586..21633464d6675 100644 --- a/packages/@aws-cdk/aws-msk-alpha/package.json +++ b/packages/@aws-cdk/aws-msk-alpha/package.json @@ -50,7 +50,7 @@ "homepage": "https://github.com/aws/aws-cdk", "scripts": { "build": "cdk-build", - "integ": "integ-runner", + "integ": "integ-runner --language javascript", "lint": "cdk-lint", "package": "cdk-package", "awslint": "cdk-awslint", diff --git a/packages/@aws-cdk/aws-neptune-alpha/package.json b/packages/@aws-cdk/aws-neptune-alpha/package.json index fc2eaa7c6d709..3cb34c12853b0 100644 --- a/packages/@aws-cdk/aws-neptune-alpha/package.json +++ b/packages/@aws-cdk/aws-neptune-alpha/package.json @@ -50,7 +50,7 @@ "homepage": "https://github.com/aws/aws-cdk", "scripts": { "build": "cdk-build", - "integ": "integ-runner", + "integ": "integ-runner --language javascript", "lint": "cdk-lint", "package": "cdk-package", "pkglint": "pkglint -f", diff --git a/packages/@aws-cdk/aws-redshift-alpha/package.json b/packages/@aws-cdk/aws-redshift-alpha/package.json index 51cd306772e4b..cc38c08eb79aa 100644 --- a/packages/@aws-cdk/aws-redshift-alpha/package.json +++ b/packages/@aws-cdk/aws-redshift-alpha/package.json @@ -52,7 +52,7 @@ "watch": "cdk-watch", "lint": "cdk-lint", "test": "cdk-test", - "integ": "integ-runner", + "integ": "integ-runner --language javascript", "pkglint": "pkglint -f", "package": "cdk-package", "awslint": "cdk-awslint", diff --git a/packages/@aws-cdk/aws-route53resolver-alpha/package.json b/packages/@aws-cdk/aws-route53resolver-alpha/package.json index a198edd610b5b..6439a74aaaf66 100644 --- a/packages/@aws-cdk/aws-route53resolver-alpha/package.json +++ b/packages/@aws-cdk/aws-route53resolver-alpha/package.json @@ -50,7 +50,7 @@ "homepage": "https://github.com/aws/aws-cdk", "scripts": { "build": "cdk-build", - "integ": "integ-runner", + "integ": "integ-runner --language javascript", "lint": "cdk-lint", "package": "cdk-package", "pkglint": "pkglint -f", diff --git a/packages/@aws-cdk/aws-s3objectlambda-alpha/package.json b/packages/@aws-cdk/aws-s3objectlambda-alpha/package.json index 44a95b61f2ecd..afb7641b450ea 100644 --- a/packages/@aws-cdk/aws-s3objectlambda-alpha/package.json +++ b/packages/@aws-cdk/aws-s3objectlambda-alpha/package.json @@ -54,7 +54,7 @@ "watch": "cdk-watch", "lint": "cdk-lint", "test": "cdk-test", - "integ": "integ-runner", + "integ": "integ-runner --language javascript", "pkglint": "pkglint -f", "package": "cdk-package", "awslint": "cdk-awslint", diff --git a/packages/@aws-cdk/aws-sagemaker-alpha/package.json b/packages/@aws-cdk/aws-sagemaker-alpha/package.json index 21e223b33d3f9..0eaa72fc7702f 100644 --- a/packages/@aws-cdk/aws-sagemaker-alpha/package.json +++ b/packages/@aws-cdk/aws-sagemaker-alpha/package.json @@ -50,7 +50,7 @@ "homepage": "https://github.com/aws/aws-cdk", "scripts": { "build": "cdk-build", - "integ": "integ-runner", + "integ": "integ-runner --language javascript", "lint": "cdk-lint", "package": "cdk-package", "pkglint": "pkglint -f", diff --git a/packages/@aws-cdk/aws-scheduler-alpha/package.json b/packages/@aws-cdk/aws-scheduler-alpha/package.json index 78bad0bbf7413..33cc652c4db09 100644 --- a/packages/@aws-cdk/aws-scheduler-alpha/package.json +++ b/packages/@aws-cdk/aws-scheduler-alpha/package.json @@ -49,7 +49,7 @@ "homepage": "https://github.com/aws/aws-cdk", "scripts": { "build": "cdk-build", - "integ": "integ-runner", + "integ": "integ-runner --language javascript", "lint": "cdk-lint", "package": "cdk-package", "awslint": "cdk-awslint", diff --git a/packages/@aws-cdk/aws-scheduler-targets-alpha/package.json b/packages/@aws-cdk/aws-scheduler-targets-alpha/package.json index f337b69fb2dda..927292da51e47 100644 --- a/packages/@aws-cdk/aws-scheduler-targets-alpha/package.json +++ b/packages/@aws-cdk/aws-scheduler-targets-alpha/package.json @@ -49,7 +49,7 @@ "homepage": "https://github.com/aws/aws-cdk", "scripts": { "build": "cdk-build", - "integ": "integ-runner", + "integ": "integ-runner --language javascript", "lint": "cdk-lint", "package": "cdk-package", "awslint": "cdk-awslint", diff --git a/packages/@aws-cdk/aws-servicecatalogappregistry-alpha/package.json b/packages/@aws-cdk/aws-servicecatalogappregistry-alpha/package.json index 0f74435a69cf1..4802ac2166926 100644 --- a/packages/@aws-cdk/aws-servicecatalogappregistry-alpha/package.json +++ b/packages/@aws-cdk/aws-servicecatalogappregistry-alpha/package.json @@ -54,7 +54,7 @@ "watch": "cdk-watch", "lint": "cdk-lint", "test": "cdk-test", - "integ": "integ-runner", + "integ": "integ-runner --language javascript", "pkglint": "pkglint -f", "package": "cdk-package", "awslint": "cdk-awslint", diff --git a/packages/@aws-cdk/cdk-cli-wrapper/package.json b/packages/@aws-cdk/cdk-cli-wrapper/package.json index 06338e207d72b..4c3970f22c0c9 100644 --- a/packages/@aws-cdk/cdk-cli-wrapper/package.json +++ b/packages/@aws-cdk/cdk-cli-wrapper/package.json @@ -10,7 +10,7 @@ "watch": "cdk-watch", "lint": "cdk-lint", "test": "cdk-test", - "integ": "integ-runner", + "integ": "integ-runner --language javascript", "pkglint": "pkglint -f", "package": "cdk-package", "awslint": "cdk-awslint", diff --git a/packages/@aws-cdk/custom-resource-handlers/package.json b/packages/@aws-cdk/custom-resource-handlers/package.json index 3d076ddf499b5..d3c00b6c5c1f6 100644 --- a/packages/@aws-cdk/custom-resource-handlers/package.json +++ b/packages/@aws-cdk/custom-resource-handlers/package.json @@ -5,7 +5,7 @@ "version": "0.0.0", "scripts": { "build": "tsc -b && node scripts/generate.js", - "integ": "integ-runner", + "integ": "integ-runner --language javascript", "lint": "cdk-lint", "package": "cdk-package", "awslint": "cdk-awslint", diff --git a/packages/@aws-cdk/example-construct-library/package.json b/packages/@aws-cdk/example-construct-library/package.json index a2a4652655b9a..052b8d1509bce 100644 --- a/packages/@aws-cdk/example-construct-library/package.json +++ b/packages/@aws-cdk/example-construct-library/package.json @@ -48,7 +48,7 @@ "watch": "cdk-watch", "lint": "cdk-lint", "test": "cdk-test", - "integ": "integ-runner", + "integ": "integ-runner --language javascript", "pkglint": "pkglint -f", "package": "cdk-package", "awslint": "cdk-awslint", diff --git a/packages/@aws-cdk/integ-runner/lib/cli.ts b/packages/@aws-cdk/integ-runner/lib/cli.ts index 7ce6528204a06..5847cec812e99 100644 --- a/packages/@aws-cdk/integ-runner/lib/cli.ts +++ b/packages/@aws-cdk/integ-runner/lib/cli.ts @@ -42,6 +42,7 @@ export function parseCliArgs(args: string[] = []) { default: ['javascript', 'typescript', 'python', 'go'], choices: ['javascript', 'typescript', 'python', 'go'], type: 'array', + nargs: 1, desc: 'Use these presets to run integration tests for the selected languages', }) .option('app', { type: 'string', default: undefined, desc: 'The custom CLI command that will be used to run the test files. You can include {filePath} to specify where in the command the test file path should be inserted. Example: --app="python3.8 {filePath}".' }) diff --git a/packages/@aws-cdk/integ-tests-alpha/package.json b/packages/@aws-cdk/integ-tests-alpha/package.json index 6bf0f0b7882e5..9fcd6d3888eb4 100644 --- a/packages/@aws-cdk/integ-tests-alpha/package.json +++ b/packages/@aws-cdk/integ-tests-alpha/package.json @@ -50,7 +50,7 @@ "awslint": "cdk-awslint", "pkglint": "pkglint -f", "test": "cdk-test", - "integ": "integ-runner", + "integ": "integ-runner --language javascript", "watch": "cdk-watch", "build+test": "yarn build && yarn test", "build+test+package": "yarn build+test && yarn package", diff --git a/packages/cdk-assets/package.json b/packages/cdk-assets/package.json index 767423ca837d5..bb648822420c3 100644 --- a/packages/cdk-assets/package.json +++ b/packages/cdk-assets/package.json @@ -10,7 +10,7 @@ }, "scripts": { "build": "cdk-build", - "integ": "integ-runner", + "integ": "integ-runner --language javascript", "lint": "cdk-lint", "package": "cdk-package", "awslint": "cdk-awslint", diff --git a/tools/@aws-cdk/pkglint/lib/rules.ts b/tools/@aws-cdk/pkglint/lib/rules.ts index a781ee6ee61a2..11a435fdeb803 100644 --- a/tools/@aws-cdk/pkglint/lib/rules.ts +++ b/tools/@aws-cdk/pkglint/lib/rules.ts @@ -1231,7 +1231,7 @@ export class MustHaveIntegCommand extends ValidationRule { public validate(pkg: PackageJson): void { if (!hasIntegTests(pkg)) { return; } - expectJSON(this.name, pkg, 'scripts.integ', 'integ-runner'); + expectJSON(this.name, pkg, 'scripts.integ', /integ-runner/, undefined, false, true); // We can't ACTUALLY require cdk-build-tools/package.json here, // because WE don't depend on cdk-build-tools and we don't know if diff --git a/tools/@aws-cdk/pkglint/lib/util.ts b/tools/@aws-cdk/pkglint/lib/util.ts index a7bb5e890c945..0b34682b510de 100644 --- a/tools/@aws-cdk/pkglint/lib/util.ts +++ b/tools/@aws-cdk/pkglint/lib/util.ts @@ -5,10 +5,18 @@ import { PackageJson, PKGLINT_IGNORES } from './packagejson'; /** * Expect a particular JSON key to be a given value */ -export function expectJSON(ruleName: string, pkg: PackageJson, jsonPath: string, expected: any, ignore?: RegExp, caseInsensitive: boolean = false) { +export function expectJSON( + ruleName: string, + pkg: PackageJson, + jsonPath: string, + expected: any, + ignore?: RegExp, + caseInsensitive: boolean = false, + regexMatch: boolean = false, +) { const parts = jsonPath.split('.'); const actual = deepGet(pkg.json, parts); - if (applyCaseInsensitive(applyIgnore(actual)) !== applyCaseInsensitive(applyIgnore(expected))) { + if (checkEquality()) { pkg.report({ ruleName, message: `${jsonPath} should be ${JSON.stringify(expected)}${ignore ? ` (ignoring ${ignore})` : ''}, is ${JSON.stringify(actual)}`, @@ -16,6 +24,13 @@ export function expectJSON(ruleName: string, pkg: PackageJson, jsonPath: string, }); } + function checkEquality(): boolean { + if (regexMatch) { + return !expected.test(applyCaseInsensitive(applyIgnore(actual))); + } + return applyCaseInsensitive(applyIgnore(actual)) !== applyCaseInsensitive(applyIgnore(expected)); + } + function applyIgnore(val: any): string { if (!ignore || val == null) { return JSON.stringify(val); } const str = JSON.stringify(val);