Skip to content

CI: use the shared TestGroups workflow - #320

Open
lkdvos wants to merge 3 commits into
mainfrom
ci-load
Open

lkdvos wants to merge 3 commits into
mainfrom
ci-load

Conversation

@lkdvos

@lkdvos lkdvos commented Oct 28, 2026 •

Copy link
Copy Markdown
Member

Moves CI to the shared TestGroups.yml workflow, following the organization-wide CI policy, which requires splitting the test suite into groups run by ParallelTestRunner.jl.

Test suite

The test files move into one folder per group, which CI runs as separate jobs; within a group, ParallelTestRunner runs the files in parallel worker processes:

group tests
core tensoropt, auxiliary, macro_kwargs, methods, tensor, allocator, polynomials, aqua
ad chainrules (was ad.jl), mooncake, enzyme
extensions bumper (was butensor.jl), tblis, tblis_unsupported (Windows only), cutensor, gpuarrays (was gpu.jl)

Locally, a single group or file can be run with e.g. Pkg.test(test_args = ["core"]) or ["ad/enzyme"].

What had to change because every test file now runs in its own sandbox module, on workers that are reused between files:

  • The shared imports and helpers of the old runtests.jl (precision, statementlinenumbernodes, is_buildkite, the seed) are set up in every sandbox through init_code.
  • The @cutensor/@butensor dependency checks expand the macro in @__MODULE__ instead of Main, and run on a fresh worker, since they require cuTENSOR/Bumper not to be loaded yet. This replaces the "should not be loaded before this point" ordering.
  • gpuarrays.jl now loads cuTENSOR itself: its CuArray contractions relied on cutensor.jl having loaded it earlier in the same process.
  • The Windows (TBLIS) and Buildkite (GPU only) filters live in runtests.jl, and are applied regardless of which group is selected.
  • The Enzyme tests are no longer skipped on Apple CI, so the macOS jobs also exercise the Enzyme rules (MatrixAlgebraKit's equivalent tests pass on macOS and Windows).
  • ParallelTestRunner is added as a test dependency.

CI

  • Matrix: every group runs on ubuntu with Julia min and 1. As an Enzyme-heavy package, macOS and Windows (Julia 1 only) also run on PRs, but only once all ubuntu jobs passed. Other packages only run them on the default branch.
  • Draft PRs only run ubuntu with Julia 1 (fast); marking the PR ready runs the full matrix.
  • Nightly runs the whole suite on ubuntu after the main matrix, and never fails the run.
  • Closed PRs: closing or merging a PR cancels its outstanding runs.
  • Coverage is only collected on ubuntu with Julia 1.
  • Branch protection: the combined result is reported as a single ci-success check.

To check

  • Architecture: the old workflow pinned arch: x64, so macos-latest (Apple Silicon) ran x64 Julia under Rosetta. The shared workflow uses the native architecture, so macOS now tests aarch64; this PR's own macOS jobs will show whether e.g. TBLIS works there.
  • Enzyme on macOS: previously skipped on Apple CI; this PR's macOS ad job is its first run there.
  • Buildkite still runs Pkg.test() without arguments, which now runs extensions/cutensor and extensions/gpuarrays through ParallelTestRunner.

Testing

All three groups pass locally on Linux with Julia 1.13, including the CUDA tests on a local GPU: core (2167 pass, 4 broken), extensions (808 pass, 2 broken), ad (25019 pass). The Windows-only tblis_unsupported test and the macOS/Windows jobs are only covered by this PR's CI.

🤖 Generated with Claude Code

lkdvos and others added 2 commits October 28, 2026 18:02
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Run the tests with ParallelTestRunner.jl, with one folder per group under test/, and use the shared QuantumKitHubActions TestGroups workflow in CI.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@lkdvos lkdvos changed the title CI: use the shared QuantumKitHubActions Tests workflow CI: use the shared TestGroups workflow Oct 28, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@lkdvos
lkdvos marked this pull request as ready for review October 29, 2026 14:51

This branch has not been deployed

No deployments
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