Skip to content

test(ci): qualify parallel runners on balanced shards - #1860

Draft
mldangelo-oai wants to merge 5 commits into
mainfrom
mdangelo/codex/ci-parallel-runner-trial
Draft

mldangelo-oai wants to merge 5 commits into
mainfrom
mdangelo/codex/ci-parallel-runner-trial

Conversation

@mldangelo-oai

@mldangelo-oai mldangelo-oai commented Oct 22, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

The runner diagnostic workflow includes a long unsharded Windows baseline and does not qualify macOS. Compare serial, isolated, and two-worker parallel execution using the same duration-based production shards on all three platforms.

Changes

  • Run all three modes across three Linux/macOS shards and seven Windows shards, using one source revision, runtime, timing snapshot, and property seed.
  • Pin diagnostics to stable Bun 1.4.3, which includes the isolated subprocess fix. Required CI and mutation tests remain on Bun 1.3.14.
  • Require each expected shard report and compare complete baseline and candidate groups, retaining occurrence counts for legitimate repeated parameterized test names and rejecting missing, extra, or changed outcomes.
  • Keep unique report names and report both baseline and candidate shard timings.
  • Install ripgrep on Linux as required CI does, so the inventory-path test executes in the diagnostic modes.
  • Trigger qualification when the shard runner, timings, comparator, Bun configuration, or Windows test-root helper changes, while preserving existing container checks.

Testing

  • Bun 1.3.14: all 16 report-comparison tests, 18 package/workflow skeleton tests, and 8 workflow-quality tests passed.
  • Bun 1.4.3 with --parallel=2: all 68 report-comparison, sharding, skeleton, and workflow-quality tests passed.
  • TypeScript checking, actionlint, formatting, and whitespace checks passed.
  • A disposable three-file fixture exercised the nine rendered Linux workflow commands and verified distinct reports plus matching complete inventories in both candidate modes.
  • CI at a3dbe5f: all required checks passed and all 39 diagnostic shard reports were produced. Serial and parallel inventories/outcomes matched on Linux, macOS, and Windows. Windows isolated mode exposed one native SQLite configuration failure; the inventory check correctly rejected its changed outcome.
  • In that diagnostic run, the slowest serial → parallel shard test times were Linux 8:13 → 4:34, macOS 9:39 → 6:26, and Windows 15:16 → 9:48. These are JUnit timings comparing diagnostic modes on the same runtime, not measurements of whole-CI or cost improvement.
  • The trigger/documentation follow-up passed 58 focused tests under both Bun 1.3.14 and Bun 1.4.3 with --parallel=2, plus full type and formatting checks and actionlint. See the PR checks for the follow-up CI result.

Risk and rollout

Depends on #1856. After that PR merges, rebase this branch onto main and retarget the PR. When rebasing after #1858, retain both the independent-title test and the expanded runner-check test if workflow-quality.test.ts conflicts.

This changes optional diagnostics only. Required checks, native artifacts, credential boundaries, and serial machine-policy tests remain unchanged; all existing tests remain enabled. There are 39 runner jobs instead of 19, so added setup can increase runner minutes. Compare actual workflow wall time and runner minutes before promoting a runner change.

The baseline now uses production shards, deliberately removing the unsharded diagnostic comparison. Full local suite runs remain available to exercise interactions across the unsharded inventory. The observed Windows isolated failure means this runtime is not qualified for promotion. Qualification in CI must succeed on Linux, macOS, and Windows before adopting this runtime or parallel mode in required CI. Promoting parallel execution also requires a coverage-enabled Linux trial; the current diagnostic modes omit coverage. Required CI uses the default property seed and instruments Linux coverage; diagnostics use a common explicit property seed without coverage. Compare inventories across both workflows, and compare scheduling speed between diagnostic modes.

Public disclosure review

  • No customer, partner, prospect, or user identities, data, or identifying details are included.
  • No credentials, personal data, private source, scan findings, or nonpublic links or tickets are included.
  • I reviewed the branch name, title, description, commits, changes, comments, logs, screenshots, attachments, and links for public disclosure.

@mldangelo-oai mldangelo-oai added the dependencies Pull requests that update a dependency file label Oct 22, 2026
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-22T04:03:48.968375Z 8006278 New commits
🔒 Security Review ✅ Completed 2026-10-22T04:04:40.447701Z 8006278 New commits
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 158f02dfb4

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/workflows/test-quality.yml
Comment thread sdk/typescript/TESTING.md

@alandelong-oai alandelong-oai left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Thanks for keeping runner promotion separate from this optional qualification workflow. This owner-level merge-safety pass found no blocking issue in the sharded baseline/candidate comparison. The intentional changes are 39 diagnostic jobs, Bun 1.4.3 for those trials, and occurrence-aware comparison of repeated test names.

All 68 focused report/shard/workflow tests passed on both Bun 1.3.14 and Bun 1.4.3 with parallel execution; types, formatting, and actionlint/ShellCheck passed. Executed the nine rendered Linux runner commands and the full 39-report comparison flow, including missing-shard and changed-outcome failures. Full hosted Linux/macOS/Windows qualification and runner-time savings remain unverified.

The existing trigger-selection note and duplicate-name guidance note are valid nonblocking follow-ups; no duplicate inline comments added.

@alandelong-oai alandelong-oai left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Thanks for aligning the Linux diagnostics with required CI’s ripgrep setup and clarifying the seed/coverage comparison. This owner-level merge-safety review found no blocking issue across the full change: 39 diagnostic jobs, Bun 1.4.3 for those trials, and occurrence-aware report comparison. Required CI remains on Bun 1.3.14.

Re-ran all 68 focused report/shard/workflow tests on both Bun 1.3.14 and Bun 1.4.3 with parallel execution; types, formatting, and actionlint/ShellCheck passed. Verified the runner commands and comparison logic are unchanged, so the prior rendered-command and complete/missing/changed-report checks still apply. Full hosted cross-platform qualification and runner-time savings remain unverified.

The existing trigger-selection note and duplicate-name guidance note remain valid nonblocking follow-ups; no duplicate inline comments added.

@alandelong-oai alandelong-oai left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Thanks for fixing the runner-tool triggers and duplicate-name guidance. This owner-level merge-safety pass found no material issue across all eight changed files. The 39-job qualification remains optional, with required CI and mutation tests on Bun 1.3.14.

All 84 focused tests passed on Bun 1.3.14 in serial mode and on Bun 1.4.3 with --parallel=2. Types, formatting, actionlint/ShellCheck, portable source checks, and fresh rendered-command/report fixtures passed.

Rechecked all 39 reports from the referenced diagnostic run: serial and parallel inventories match on all three platforms; the comparator correctly rejects the Windows isolated SQLite failure. Current-head hosted CI remains in progress. Runtime promotion still requires full platform qualification and a coverage-enabled Linux trial; whole-workflow time and cost savings remain unverified.

@mldangelo-oai
mldangelo-oai marked this pull request as draft October 22, 2026 04:20
Base automatically changed from mdangelo/codex/ci-duration-shards to main October 22, 2026 05:49
@github-actions github-actions Bot added the skip-release-notes Omit internal changes from generated release notes label Oct 22, 2026

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

dependencies Pull requests that update a dependency file skip-release-notes Omit internal changes from generated release notes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants