feat(integ-runner): toolkit-lib-engine is now the only engine (removes old cli-wrapper engine)#1108
Merged
aws-cdk-automation merged 4 commits intomainfrom Feb 3, 2026
Conversation
BREAKING CHANGE: The `--unstable=deprecated-cli-engine` option has been removed. The toolkit-lib engine is now the only supported engine for running integration tests. The `@aws-cdk/cdk-cli-wrapper` package has been deleted as it is no longer needed. Users who were using the deprecated cli-wrapper engine will automatically use the toolkit-lib engine instead. The `--unstable=toolkit-lib-engine` flag is also no longer needed and will emit a warning if used.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #1108 +/- ##
==========================================
- Coverage 87.70% 87.64% -0.06%
==========================================
Files 72 72
Lines 10121 10121
Branches 1337 1334 -3
==========================================
- Hits 8877 8871 -6
- Misses 1219 1225 +6
Partials 25 25
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Contributor
|
Total lines changed 2226 is greater than 1000. Please consider breaking this PR down. |
607886b to
c91da48
Compare
rix0rrr
approved these changes
Feb 3, 2026
1 task
github-merge-queue Bot
pushed a commit
that referenced
this pull request
Mar 26, 2026
…CommandOptions (#1232) Fixes #1231 When an integration test specifies a profile via `cdkCommandOptions.deploy.args.profile`: ```typescript new IntegTest(app, 'my-test', { testCases: [myStack], cdkCommandOptions: { deploy: { args: { profile: 'deploy-profile' }, }, }, }); ``` The profile is silently ignored. The `ToolkitLibRunnerEngine` creates a single `Toolkit` instance at construction time with credentials locked to the runner-level profile (from `--profiles` CLI flag or machine default). The engine's `deploy()` and `destroy()` methods receive the correct profile in their options but never use it. This capability existed implicitly in the old `cli-wrapper` engine (removed in #1108) which spawned separate CLI processes per action, each with its own `--profile` flag. #### Changes Single file: `packages/@aws-cdk/integ-runner/lib/engines/toolkit-lib.ts` - Extracted `createToolkit(profile, region)` helper from the constructor - Added `toolkitFor(options)` that returns a new `Toolkit` when the per-action profile differs from the constructor profile, or reuses the existing one when they match - Updated `deploy()`, `destroy()`, and `cx()` to use the appropriate toolkit #### Testing Added 3 tests in `packages/@aws-cdk/integ-runner/test/engines/toolkit-lib.test.ts`: - Deploy with override profile creates new Toolkit with correct credentials - Destroy with override profile creates new Toolkit with correct credentials - Deploy with same profile reuses existing Toolkit (no perf regression) All 149 existing tests continue to pass. ### Checklist - [ ] This change contains a major version upgrade for a dependency and I confirm all breaking changes are addressed - Release notes for the new version: --- By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license --------- Co-authored-by: Sai Ray <[email protected]>
Closed
1 task
1 task
github-merge-queue Bot
pushed a commit
that referenced
this pull request
Apr 3, 2026
…onfiguration (#1306) Fixes #1305 `integ-runner` now supports `--proxy` and `--ca-bundle-path` CLI options to configure proxy settings for all AWS API calls. When no `--proxy` flag is given, proxy settings are auto-detected from `HTTPS_PROXY`/`HTTP_PROXY` environment variables. The `--ca-bundle-path` option reads a PEM certificate bundle, falling back to the `AWS_CA_BUNDLE` environment variable. Both options can also be set via `integ.config.json`. Previously, `ToolkitLibRunnerEngine` did not pass proxy or CA bundle options to the `Toolkit` constructor's `sdkConfig`. The AWS SDK v3's `NodeHttpHandler` creates its own `https.Agent` which bypasses proxy environment variables, so a proxy-aware agent must be explicitly provided. This became a regression when the toolkit-lib engine became the default in #906 and the old CLI engine was removed in #1108. The old engine spawned `cdk` as a child process which handled proxy settings internally. The new engine runs in-process but never wired up the proxy configuration. The fix uses `proxy-agent` (the same library as the CDK CLI) to create proxy-aware agents that are passed as `sdkConfig.httpOptions.agent` to the Toolkit constructor. Both `ProxyAgent` and `Toolkit` instances are cached by their resolved configuration to avoid creating duplicates across engine instances. Per-action options from `DefaultCdkOptions` can override the engine defaults through a dedicated `ActionOptions` interface. ### Checklist - [ ] This change contains a major version upgrade for a dependency and I confirm all breaking changes are addressed - Release notes for the new version: --- By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR completes the planned deprecation of the
cli-wrapperengine by removing it entirely and deleting the@aws-cdk/cdk-cli-wrapperpackage.The
cli-wrapperengine was deprecated in favor of thetoolkit-libengine, which uses the programmatic@aws-cdk/toolkit-liblibrary instead of spawning CLI processes. The deprecation notice indicated removal was scheduled for January 2026.Changes
The
toolkit-libengine is now the only supported engine for running integration tests. The@aws-cdk/cdk-cli-wrapperpackage has been deleted as it is no longer needed.To ensure backward compatibility for users who may still have
--unstable=deprecated-cli-engineor--unstable=toolkit-lib-enginein their scripts, a newunstable-features.tsmodule gracefully handles these removed flags by emitting warnings instead of failing.The
ICdkinterface and related types have been moved from@aws-cdk/cdk-cli-wrapperto@aws-cdk/integ-runner/lib/engines/cdk-interface.tssince they are still needed by the toolkit-lib engine implementation.By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license