Skip to content

Commit f9fbbb4

Browse files
authored
fix(integ-runner): cannot pass test name after --language (#28922)
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 #28770, but reverted as it caused an issue, see detail in #28891. BREAKING CHANGE: Parsing of the cli input caused arguments passed after the first instance `--language <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*
1 parent e9a867a commit f9fbbb4

File tree

38 files changed

+54
-38
lines changed

38 files changed

+54
-38
lines changed

packages/@aws-cdk-testing/framework-integ/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"lint": "cdk-lint",
1010
"pkglint": "pkglint -f",
1111
"test": "cdk-test",
12-
"integ": "integ-runner",
12+
"integ": "integ-runner --language javascript",
1313
"package": "cdk-package",
1414
"build+test": "yarn build && yarn test",
1515
"build+extract": "yarn build",

packages/@aws-cdk/app-staging-synthesizer-alpha/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
"watch": "cdk-watch",
4949
"lint": "cdk-lint",
5050
"test": "cdk-test",
51-
"integ": "integ-runner",
51+
"integ": "integ-runner --language javascript",
5252
"pkglint": "pkglint -f",
5353
"package": "cdk-package",
5454
"awslint": "cdk-awslint",

packages/@aws-cdk/aws-amplify-alpha/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
"homepage": "https://github.com/aws/aws-cdk",
5151
"scripts": {
5252
"build": "cdk-build",
53-
"integ": "integ-runner",
53+
"integ": "integ-runner --language javascript",
5454
"lint": "cdk-lint",
5555
"package": "cdk-package",
5656
"awslint": "cdk-awslint",

packages/@aws-cdk/aws-appconfig-alpha/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
"watch": "cdk-watch",
5353
"lint": "cdk-lint",
5454
"test": "cdk-test",
55-
"integ": "integ-runner",
55+
"integ": "integ-runner --language javascript",
5656
"pkglint": "pkglint -f",
5757
"package": "cdk-package",
5858
"awslint": "cdk-awslint",

packages/@aws-cdk/aws-apprunner-alpha/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
"watch": "cdk-watch",
5555
"lint": "cdk-lint",
5656
"test": "cdk-test",
57-
"integ": "integ-runner",
57+
"integ": "integ-runner --language javascript",
5858
"pkglint": "pkglint -f",
5959
"package": "cdk-package",
6060
"awslint": "cdk-awslint",

packages/@aws-cdk/aws-cloud9-alpha/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
"watch": "cdk-watch",
5353
"lint": "cdk-lint",
5454
"test": "cdk-test",
55-
"integ": "integ-runner",
55+
"integ": "integ-runner --language javascript",
5656
"pkglint": "pkglint -f",
5757
"package": "cdk-package",
5858
"awslint": "cdk-awslint",

packages/@aws-cdk/aws-codestar-alpha/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
"homepage": "https://github.com/aws/aws-cdk",
5151
"scripts": {
5252
"build": "cdk-build",
53-
"integ": "integ-runner",
53+
"integ": "integ-runner --language javascript",
5454
"lint": "cdk-lint",
5555
"package": "cdk-package",
5656
"awslint": "cdk-awslint",

packages/@aws-cdk/aws-cognito-identitypool-alpha/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
"watch": "cdk-watch",
5252
"lint": "cdk-lint",
5353
"test": "cdk-test",
54-
"integ": "integ-runner",
54+
"integ": "integ-runner --language javascript",
5555
"pkglint": "pkglint -f",
5656
"package": "cdk-package",
5757
"awslint": "cdk-awslint",

packages/@aws-cdk/aws-gamelift-alpha/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
"watch": "cdk-watch",
5353
"lint": "cdk-lint",
5454
"test": "cdk-test",
55-
"integ": "integ-runner",
55+
"integ": "integ-runner --language javascript",
5656
"pkglint": "pkglint -f",
5757
"package": "cdk-package",
5858
"awslint": "cdk-awslint",

packages/@aws-cdk/aws-glue-alpha/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
"watch": "cdk-watch",
5353
"lint": "cdk-lint",
5454
"test": "cdk-test",
55-
"integ": "integ-runner",
55+
"integ": "integ-runner --language javascript",
5656
"pkglint": "pkglint -f",
5757
"package": "cdk-package",
5858
"awslint": "cdk-awslint",

packages/@aws-cdk/aws-iot-actions-alpha/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
"watch": "cdk-watch",
5252
"lint": "cdk-lint",
5353
"test": "cdk-test",
54-
"integ": "integ-runner",
54+
"integ": "integ-runner --language javascript",
5555
"pkglint": "pkglint -f",
5656
"package": "cdk-package",
5757
"awslint": "cdk-awslint",

packages/@aws-cdk/aws-iot-alpha/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
"watch": "cdk-watch",
5353
"lint": "cdk-lint",
5454
"test": "cdk-test",
55-
"integ": "integ-runner",
55+
"integ": "integ-runner --language javascript",
5656
"pkglint": "pkglint -f",
5757
"package": "cdk-package",
5858
"awslint": "cdk-awslint",

packages/@aws-cdk/aws-iotevents-actions-alpha/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
"watch": "cdk-watch",
4545
"lint": "cdk-lint",
4646
"test": "cdk-test",
47-
"integ": "integ-runner",
47+
"integ": "integ-runner --language javascript",
4848
"pkglint": "pkglint -f",
4949
"package": "cdk-package",
5050
"awslint": "cdk-awslint",

packages/@aws-cdk/aws-iotevents-alpha/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
"homepage": "https://github.com/aws/aws-cdk",
5151
"scripts": {
5252
"build": "cdk-build",
53-
"integ": "integ-runner",
53+
"integ": "integ-runner --language javascript",
5454
"lint": "cdk-lint",
5555
"package": "cdk-package",
5656
"awslint": "cdk-awslint",

packages/@aws-cdk/aws-ivs-alpha/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353
"watch": "cdk-watch",
5454
"lint": "cdk-lint",
5555
"test": "cdk-test",
56-
"integ": "integ-runner",
56+
"integ": "integ-runner --language javascript",
5757
"pkglint": "pkglint -f",
5858
"package": "cdk-package",
5959
"awslint": "cdk-awslint",

packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
"watch": "cdk-watch",
5252
"lint": "cdk-lint",
5353
"test": "cdk-test",
54-
"integ": "integ-runner",
54+
"integ": "integ-runner --language javascript",
5555
"pkglint": "pkglint -f",
5656
"package": "cdk-package",
5757
"awslint": "cdk-awslint",

packages/@aws-cdk/aws-kinesisfirehose-alpha/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
"watch": "cdk-watch",
5353
"lint": "cdk-lint",
5454
"test": "cdk-test",
55-
"integ": "integ-runner",
55+
"integ": "integ-runner --language javascript",
5656
"pkglint": "pkglint -f",
5757
"package": "cdk-package",
5858
"awslint": "cdk-awslint",

packages/@aws-cdk/aws-kinesisfirehose-destinations-alpha/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
"watch": "cdk-watch",
5252
"lint": "cdk-lint",
5353
"test": "cdk-test",
54-
"integ": "integ-runner",
54+
"integ": "integ-runner --language javascript",
5555
"pkglint": "pkglint -f",
5656
"package": "cdk-package",
5757
"awslint": "cdk-awslint",

packages/@aws-cdk/aws-lambda-go-alpha/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353
"watch": "cdk-watch",
5454
"lint": "cdk-lint",
5555
"test": "cdk-test",
56-
"integ": "integ-runner",
56+
"integ": "integ-runner --language javascript",
5757
"pkglint": "pkglint -f",
5858
"package": "cdk-package",
5959
"awslint": "cdk-awslint",

packages/@aws-cdk/aws-lambda-python-alpha/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
"watch": "cdk-watch",
5353
"lint": "cdk-lint",
5454
"test": "cdk-test",
55-
"integ": "integ-runner",
55+
"integ": "integ-runner --language javascript",
5656
"pkglint": "pkglint -f",
5757
"package": "cdk-package",
5858
"awslint": "cdk-awslint",

packages/@aws-cdk/aws-location-alpha/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
"watch": "cdk-watch",
5555
"lint": "cdk-lint",
5656
"test": "cdk-test",
57-
"integ": "integ-runner",
57+
"integ": "integ-runner --language javascript",
5858
"pkglint": "pkglint -f",
5959
"package": "cdk-package",
6060
"awslint": "cdk-awslint",

packages/@aws-cdk/aws-msk-alpha/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
"homepage": "https://github.com/aws/aws-cdk",
5151
"scripts": {
5252
"build": "cdk-build",
53-
"integ": "integ-runner",
53+
"integ": "integ-runner --language javascript",
5454
"lint": "cdk-lint",
5555
"package": "cdk-package",
5656
"awslint": "cdk-awslint",

packages/@aws-cdk/aws-neptune-alpha/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
"homepage": "https://github.com/aws/aws-cdk",
5151
"scripts": {
5252
"build": "cdk-build",
53-
"integ": "integ-runner",
53+
"integ": "integ-runner --language javascript",
5454
"lint": "cdk-lint",
5555
"package": "cdk-package",
5656
"pkglint": "pkglint -f",

packages/@aws-cdk/aws-redshift-alpha/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
"watch": "cdk-watch",
5353
"lint": "cdk-lint",
5454
"test": "cdk-test",
55-
"integ": "integ-runner",
55+
"integ": "integ-runner --language javascript",
5656
"pkglint": "pkglint -f",
5757
"package": "cdk-package",
5858
"awslint": "cdk-awslint",

packages/@aws-cdk/aws-route53resolver-alpha/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
"homepage": "https://github.com/aws/aws-cdk",
5151
"scripts": {
5252
"build": "cdk-build",
53-
"integ": "integ-runner",
53+
"integ": "integ-runner --language javascript",
5454
"lint": "cdk-lint",
5555
"package": "cdk-package",
5656
"pkglint": "pkglint -f",

packages/@aws-cdk/aws-s3objectlambda-alpha/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
"watch": "cdk-watch",
5555
"lint": "cdk-lint",
5656
"test": "cdk-test",
57-
"integ": "integ-runner",
57+
"integ": "integ-runner --language javascript",
5858
"pkglint": "pkglint -f",
5959
"package": "cdk-package",
6060
"awslint": "cdk-awslint",

packages/@aws-cdk/aws-sagemaker-alpha/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
"homepage": "https://github.com/aws/aws-cdk",
5151
"scripts": {
5252
"build": "cdk-build",
53-
"integ": "integ-runner",
53+
"integ": "integ-runner --language javascript",
5454
"lint": "cdk-lint",
5555
"package": "cdk-package",
5656
"pkglint": "pkglint -f",

packages/@aws-cdk/aws-scheduler-alpha/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
"homepage": "https://github.com/aws/aws-cdk",
5050
"scripts": {
5151
"build": "cdk-build",
52-
"integ": "integ-runner",
52+
"integ": "integ-runner --language javascript",
5353
"lint": "cdk-lint",
5454
"package": "cdk-package",
5555
"awslint": "cdk-awslint",

packages/@aws-cdk/aws-scheduler-targets-alpha/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
"homepage": "https://github.com/aws/aws-cdk",
5050
"scripts": {
5151
"build": "cdk-build",
52-
"integ": "integ-runner",
52+
"integ": "integ-runner --language javascript",
5353
"lint": "cdk-lint",
5454
"package": "cdk-package",
5555
"awslint": "cdk-awslint",

packages/@aws-cdk/aws-servicecatalogappregistry-alpha/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
"watch": "cdk-watch",
5555
"lint": "cdk-lint",
5656
"test": "cdk-test",
57-
"integ": "integ-runner",
57+
"integ": "integ-runner --language javascript",
5858
"pkglint": "pkglint -f",
5959
"package": "cdk-package",
6060
"awslint": "cdk-awslint",

packages/@aws-cdk/cdk-cli-wrapper/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"watch": "cdk-watch",
1111
"lint": "cdk-lint",
1212
"test": "cdk-test",
13-
"integ": "integ-runner",
13+
"integ": "integ-runner --language javascript",
1414
"pkglint": "pkglint -f",
1515
"package": "cdk-package",
1616
"awslint": "cdk-awslint",

packages/@aws-cdk/custom-resource-handlers/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"version": "0.0.0",
66
"scripts": {
77
"build": "tsc -b && node scripts/generate.js",
8-
"integ": "integ-runner",
8+
"integ": "integ-runner --language javascript",
99
"lint": "cdk-lint",
1010
"package": "cdk-package",
1111
"awslint": "cdk-awslint",

packages/@aws-cdk/example-construct-library/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
"watch": "cdk-watch",
4949
"lint": "cdk-lint",
5050
"test": "cdk-test",
51-
"integ": "integ-runner",
51+
"integ": "integ-runner --language javascript",
5252
"pkglint": "pkglint -f",
5353
"package": "cdk-package",
5454
"awslint": "cdk-awslint",

packages/@aws-cdk/integ-runner/lib/cli.ts

+1
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ export function parseCliArgs(args: string[] = []) {
4242
default: ['javascript', 'typescript', 'python', 'go'],
4343
choices: ['javascript', 'typescript', 'python', 'go'],
4444
type: 'array',
45+
nargs: 1,
4546
desc: 'Use these presets to run integration tests for the selected languages',
4647
})
4748
.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}".' })

packages/@aws-cdk/integ-tests-alpha/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
"awslint": "cdk-awslint",
5151
"pkglint": "pkglint -f",
5252
"test": "cdk-test",
53-
"integ": "integ-runner",
53+
"integ": "integ-runner --language javascript",
5454
"watch": "cdk-watch",
5555
"build+test": "yarn build && yarn test",
5656
"build+test+package": "yarn build+test && yarn package",

packages/cdk-assets/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
},
1111
"scripts": {
1212
"build": "cdk-build",
13-
"integ": "integ-runner",
13+
"integ": "integ-runner --language javascript",
1414
"lint": "cdk-lint",
1515
"package": "cdk-package",
1616
"awslint": "cdk-awslint",

tools/@aws-cdk/pkglint/lib/rules.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1231,7 +1231,7 @@ export class MustHaveIntegCommand extends ValidationRule {
12311231
public validate(pkg: PackageJson): void {
12321232
if (!hasIntegTests(pkg)) { return; }
12331233

1234-
expectJSON(this.name, pkg, 'scripts.integ', 'integ-runner');
1234+
expectJSON(this.name, pkg, 'scripts.integ', /integ-runner/, undefined, false, true);
12351235

12361236
// We can't ACTUALLY require cdk-build-tools/package.json here,
12371237
// because WE don't depend on cdk-build-tools and we don't know if

tools/@aws-cdk/pkglint/lib/util.ts

+17-2
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,32 @@ import { PackageJson, PKGLINT_IGNORES } from './packagejson';
55
/**
66
* Expect a particular JSON key to be a given value
77
*/
8-
export function expectJSON(ruleName: string, pkg: PackageJson, jsonPath: string, expected: any, ignore?: RegExp, caseInsensitive: boolean = false) {
8+
export function expectJSON(
9+
ruleName: string,
10+
pkg: PackageJson,
11+
jsonPath: string,
12+
expected: any,
13+
ignore?: RegExp,
14+
caseInsensitive: boolean = false,
15+
regexMatch: boolean = false,
16+
) {
917
const parts = jsonPath.split('.');
1018
const actual = deepGet(pkg.json, parts);
11-
if (applyCaseInsensitive(applyIgnore(actual)) !== applyCaseInsensitive(applyIgnore(expected))) {
19+
if (checkEquality()) {
1220
pkg.report({
1321
ruleName,
1422
message: `${jsonPath} should be ${JSON.stringify(expected)}${ignore ? ` (ignoring ${ignore})` : ''}, is ${JSON.stringify(actual)}`,
1523
fix: () => { deepSet(pkg.json, parts, expected); },
1624
});
1725
}
1826

27+
function checkEquality(): boolean {
28+
if (regexMatch) {
29+
return !expected.test(applyCaseInsensitive(applyIgnore(actual)));
30+
}
31+
return applyCaseInsensitive(applyIgnore(actual)) !== applyCaseInsensitive(applyIgnore(expected));
32+
}
33+
1934
function applyIgnore(val: any): string {
2035
if (!ignore || val == null) { return JSON.stringify(val); }
2136
const str = JSON.stringify(val);

0 commit comments

Comments
 (0)