Skip to content

Add remote execution for package-backed managed tests - #482

Draft
Luc45 wants to merge 3 commits into
trunkfrom
26-08/remote-managed-tests
Draft

Add remote execution for package-backed managed tests#482
Luc45 wants to merge 3 commits into
trunkfrom
26-08/remote-managed-tests

Conversation

@Luc45

@Luc45 Luc45 commented Aug 12, 2026

Copy link
Copy Markdown
Member

Summary

  • Add an explicit --remote execution switch to run:activation, run:woo-api, and run:woo-e2e.
  • Reuse the existing Manager enqueue, ZIP upload, async, and polling path while keeping local package execution as the default.
  • Reject worker recursion and unsupported local-only configuration instead of silently dropping configuration on remote runs.
  • Preserve package test types in lifecycle CTRF data and resolve metadata for cached local extensions.

Why

The package-backed managed commands now execute locally by default. Callers that need horizontal execution through the Manager still need an explicit, composable route: --remote chooses where the test runs, while --async independently chooses whether the caller waits.

Local ZIPs use the existing upload flow: the CLI uploads the build, enqueues its upload_id, and the remote worker downloads it before running the package locally. Generic run:e2e remains local because its blueprints, environments, secrets, volumes, and arbitrary package configuration do not have a lossless remote contract.

Behavior

  • No flag: local synchronous package run, unchanged.
  • --remote: enqueue through the Manager and wait.
  • --remote --async --json: enqueue and return the test_run_id.
  • --extension_set: remains implicitly remote for backward compatibility.
  • Inner CI workers reject remote recursion through QIT_TEST_RUN_ID.

Validation

  • RunManagedTestExtensionSetTest: 37 tests, 133 assertions.
  • ExtensionResolverWooVersionTest: 8 tests, 11 assertions.
  • TestPackageManifestTest: 11 tests, 32 assertions.
  • Targeted PHPCS, PHP lint, and git diff --check pass.
  • Full unit suite, PHPStan, and Phan passed before the final focused metadata commit; the changed metadata code is covered by the focused tests and PHPCS.

Compatibility note

Remote execution now fails closed when the effective qit.json configuration contains unsupported local-only keys. This is intentional: silently ignoring those values could run a different test plan remotely.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant