Skip to content

Feature integration test sharding#784

Open
vfusco wants to merge 4 commits into
next/2.0from
feature/integration-test-sharding
Open

Feature integration test sharding#784
vfusco wants to merge 4 commits into
next/2.0from
feature/integration-test-sharding

Conversation

@vfusco

@vfusco vfusco commented Jun 19, 2026

Copy link
Copy Markdown
Collaborator

No description provided.

@vfusco vfusco added this to the 2.0.0 milestone Jun 19, 2026
@vfusco vfusco self-assigned this Jun 19, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces integration-test sharding to speed up CI by splitting the integration suite into isolated Docker Compose projects, plus adds supporting tooling (log capture, shard coverage guard) and updates workflows/actions accordingly.

Changes:

  • Add shard-aware integration test execution (Makefile shards + TEST_PATTERN forwarding) and a shard coverage guard for CI.
  • Introduce a Compose runner script that captures run output + node log + service logs per shard into dedicated artifacts.
  • Replace the GitHub license-header action with a repo-local license header verification script; update CI workflows and housekeeping.

Reviewed changes

Copilot reviewed 12 out of 13 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
test/integration/main_test.go Skips node management when invoked via go test -list to support shard discovery.
test/compose/compose.integration.yaml Adds shard/test selection env vars and gotestsum format configuration for the integration container.
scripts/run-integration-tests.sh Adds TEST_PATTERN/SHARD_NAME support and centralizes Go test args for shard runs.
scripts/compose-integration-run.sh New: isolated Compose project runner that aggregates logs into a single file per run/shard.
scripts/check-license-header.sh New: checks Go source files for the standard license header (replacing the previous action).
scripts/check-integration-shards.sh New: validates that every top-level integration test belongs to exactly one shard.
README.md Minor wording/link formatting tweak.
Makefile Adds shard definitions/targets, log cleanup target, and license check target; updates integration CI plumbing.
Dockerfile Installs additional binutils packages needed for build/linking.
.gitignore Ignores integration log artifacts.
.github/workflows/clean-up-images.yml Switches GHCR cleanup to a scheduled workflow and pins the prune action by commit.
.github/workflows/build.yml Updates actions, adds shard-matrix integration job setup, and uploads per-shard logs.
.github/license-check/config.json Removed (no longer needed after switching to the local license header script).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread scripts/check-integration-shards.sh Outdated
Comment on lines +38 to +40
# Filter out the trailing "ok <package>" summary line of -list.
TESTS=$(go test -list '^Test' -tags=endtoendtests ./test/integration/... |
grep -E '^Test[A-Za-z0-9_]*$' || true)
Comment on lines +67 to +69
for i in "${!SHARD_NAMES[@]}"; do
if ! printf '%s\n' $TESTS | grep -Eq "${SHARD_REGEXES[$i]}"; then
echo "ERROR: shard ${SHARD_NAMES[$i]} (${SHARD_REGEXES[$i]}) matches no tests" >&2
Comment thread scripts/check-integration-shards.sh Outdated
Comment thread scripts/check-integration-shards.sh
@vfusco vfusco force-pushed the feature/integration-test-sharding branch 2 times, most recently from bd0a56a to 1683250 Compare June 20, 2026 23:23
@vfusco vfusco force-pushed the feature/integration-test-sharding branch from 1683250 to 6238416 Compare June 21, 2026 01:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Todo

Development

Successfully merging this pull request may close these issues.

2 participants