Skip to content

ci(test): separate e2e families from driver target variants - #4541

Closed
elezar wants to merge 2 commits into
mainfrom
ci/4540-e2e-test-families/elezar
Closed

elezar wants to merge 2 commits into
mainfrom
ci/4540-e2e-test-families/elezar

Conversation

@elezar

@elezar elezar commented Oct 14, 2026 •

Copy link
Copy Markdown
Member

Summary

Separate end-to-end execution into conformance, features, and drivers families while retaining existing runners, target combinations, and required/optional/advisory policies. Driver harnesses can execute conformance or runtime suites independently, with combined execution retained for existing local commands.

Related Issue

Closes #4540. Part of #3954 and RFC-0016 (#3460).

The focused issue has no acceptance label; the author has verified ADMIN access to this repository.

Changes

  • Add shared family workflows that call driver workflows directly, with matrices for regular/external variants and Kubernetes configurations. Driver workflows retain nested scenario matrices. Remove the intermediate runtime-selector workflow. Branch and release callers reuse the families; required core/GPU result names remain unchanged. Optional profiles retain separate calls and gate policies.
  • Expose provider-refresh and OCI-image separately within Features, retaining all five existing target combinations and separate concurrency groups.
  • Treat bundled/external drivers as target variants. External VM retains both conformance and its five runtime test binaries; external Docker, Podman, and Kubernetes retain conformance-only execution in CI.
  • Preserve the package/HA integration matrices, all six Docker suites, the Podman CI allowlist and tmachine coverage, Kubernetes versions and namespace modes, GPU architectures, and advisory WSL behavior. Mixed legacy runtime suites remain under Drivers pending later extraction.
  • Reject empty driver-suite selections. Avoid exporting an empty Kubernetes workflow input over the harness defaults while preserving the external-driver task's explicit empty feature list.
  • Require every selected runtime job and the overall Drivers family to succeed. Retain per-runtime release-summary fields and add the aggregate driver-family result.
  • Document the execution split and add focused regression checks without moving Rust test sources or broadening the release profile.

Testing

  • Pre-commit checks, including the commit hook inside dev-openshell shell.
  • mise run --skip-tools test:e2e-lanes: 91 checks for dispatch, failure propagation, preserved matrices, and gate compatibility.
  • Compared all 28 expanded runtime invocations against the preceding implementation: identical runners, artifact inputs, fixtures, defaults, commands, and suite matrices.
  • mise run --skip-tools test:qualification-summary, including failed/cancelled/skipped family cases.
  • Actionlint on all changed workflows; ShellCheck on changed shell scripts; Ruff, Markdown lint, staged whitespace checks, and agent-infrastructure consistency checks.
  • dev-openshell shell -- bash -c 'cd "$OPENSHELL_HOME" && exec mise run --skip-tools ci': failed at the unchanged gateway test signals_stop_probe_wrapper_and_descendants_before_cli_exit (probe descendant ready: Elapsed(()), crates/openshell-gateway/tests/config_preflight.rs:226). The earlier plain-shell attempt also lacked Z3 linkage; the requested environment resolves that dependency. The exact gateway test subsequently passed in isolation through dev-openshell shell -- mise exec -- cargo test -p openshell-gateway --test config_preflight signals_stop_probe_wrapper_and_descendants_before_cli_exit -- --exact --nocapture; that diagnostic result does not replace the failed full run.
  • Branch Checks on the preceding revision passed.
  • E2E on the preceding revision failed in the two Kubernetes driver-specific version lanes. The v1beta1 lane ran 101 tests: 100 passed and canonical_main_connect_recovers_its_ssh_transport timed out waiting for SSH reattachment. This remains unresolved; the workflow restructuring does not change those assertions or suppress the failures.
  • Live E2E on the updated matrix structure, dispatched on commit e21c1a8d921317d2c7df7b0326ed6750acbd9b19. Manual dispatch selects core and GPU coverage; optional Kubernetes HA/credential profiles remain unverified. The PR remains a draft until coverage evidence is reviewed.

Splitting previously combined runtime jobs provisions a fresh target for each family and adds setup work. The change does not claim that collected or stubbed tests establish live target correctness.

Checklist

  • Follows Conventional Commits.
  • Commits are signed off (DCO).
  • Testing and CI documentation updated.

Signed-off-by: Evan Lezar <elezar@nvidia.com>
@elezar elezar added test:e2e Requires end-to-end coverage test:e2e-gpu Requires GPU end-to-end coverage test:e2e-kubernetes Requires Kubernetes end-to-end coverage labels Oct 14, 2026
@copy-pr-bot

copy-pr-bot Bot commented Oct 14, 2026

Copy link
Copy Markdown

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@github-actions

Copy link
Copy Markdown

Label test:e2e applied, but pull-request/4541 does not exist yet. A maintainer needs to comment /ok to test 23f7d5d51c76b5ae3d46d039c3675e44851a6923 to mirror this PR. Once the mirror exists, re-apply the label or re-run Branch E2E Checks from the Actions tab.

@github-actions

Copy link
Copy Markdown

Label test:e2e-gpu applied, but pull-request/4541 does not exist yet. A maintainer needs to comment /ok to test 23f7d5d51c76b5ae3d46d039c3675e44851a6923 to mirror this PR. Once the mirror exists, re-apply the label or re-run Branch E2E Checks from the Actions tab.

@github-actions

Copy link
Copy Markdown

Label test:e2e-kubernetes applied, but pull-request/4541 does not exist yet. A maintainer needs to comment /ok to test 23f7d5d51c76b5ae3d46d039c3675e44851a6923 to mirror this PR. Once the mirror exists, re-apply the label or re-run Branch E2E Checks from the Actions tab.

@github-actions

Copy link
Copy Markdown

@elezar

elezar commented Oct 14, 2026

Copy link
Copy Markdown
Member Author

/ok-to-test 23f7d5d

Signed-off-by: Evan Lezar <elezar@nvidia.com>
@elezar

elezar commented Oct 14, 2026

Copy link
Copy Markdown
Member Author

/ok-to-test e21c1a8

@elezar elezar closed this Oct 15, 2026
@elezar
elezar deleted the ci/4540-e2e-test-families/elezar branch October 15, 2026 14:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

test:e2e Requires end-to-end coverage test:e2e-gpu Requires GPU end-to-end coverage test:e2e-kubernetes Requires Kubernetes end-to-end coverage

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ci: separate e2e test families from driver target variants

1 participant