CI: shard integration tests#2428
Draft
yuandrew wants to merge 2 commits into
Draft
Conversation
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.
What was changed
Shard integration tests so we can run more jobs in parallel in CI, speeding up CI.
Also added a check that validates the manifest before generating the regex. It runs:
from the test/ directory, parses discovered top-level tests, and fails if any discovered test is missing from the manifest, assigned to multiple shards, or listed in the manifest but no longer exists. This prevents new integration tests from being silently skipped.
Why?
Faster CI.
Checklist
Closes
How was this tested:
Note
Low Risk
Changes are limited to CI configuration and the internal build helper; SDK runtime behavior is unchanged, and manifest sync checks reduce the risk of incomplete test coverage.
Overview
Shards integration tests across CI so each matrix job runs a subset instead of the full
test/suite, increasing parallelism and shortening wall-clock time.Adds
.github/integration-shards.ymlwith five shards (core,payload,nexus,worker,replay) mapping top-levelTest*names. Theintegration-test-no-cacheandintegration-test-with-cacheworkflows gain ashardmatrix axis and pass-shard ${{ matrix.shard }}to the build CLI.The
internal/cmd/buildtool loads that manifest, maps a shard to ago test -runregex, and addsintegration-shard-regex/integration-shard-validateplus-shard(mutually exclusive with-run). Validation runsgo test -list . ./...undertest/and fails if tests are unassigned, duplicated across shards, or listed but missing.gopkg.in/yaml.v3is a direct dependency; unit tests cover list parsing and manifest validation.Reviewed by Cursor Bugbot for commit 1b400b1. Bugbot is set up for automated code reviews on this repo. Configure here.