Skip to content

ci: shard Windows test legs, aggregate ci check, WSL lane on integration-line pushes only - #121

Merged
lidge-jun merged 4 commits into
devfrom
codex/ci-modernization
Sep 9, 2026
Merged

lidge-jun merged 4 commits into
devfrom
codex/ci-modernization

Conversation

@lidge-jun

Copy link
Copy Markdown
Owner

Problem

Every pull request paid for the 13–14 minute WSL lane and two 9-minute Windows test legs, so PR wall-clock time was set by installation checks rather than by review evidence. Splitting the test job also needs one stable check to require, since the current main ruleset names the per-OS test (…) contexts.

Change

  • scripts/test.mjs --shard i/n: expands the test globs itself, sorts POSIX-normalized paths and keeps every file whose index % n === i − 1. plugins/codexclaw/test/test-shard.test.mjs proves union, disjointness and separator-agnostic order over the real package.json patterns (212 files, 106/106).
  • ci.yml: the ubuntu lane still runs the whole suite in one process and measures the tests badge total; macOS stays whole; each Windows autocrlf variant runs as two shards with a 12-minute bound; cancel-in-progress only for pull requests; an if: always() ci job fails unless every leg reports success (skipped and cancelled fail). Push trigger adds preview.
  • wsl.yml: runs on push to main/preview/dev and workflow_dispatch only, as two parallel jobs (wsl (drvfs /mnt/c), wsl (native ext4 ~)) with 20-minute bounds.
  • README Contributing: table of which checks run on pull requests and which on integration-line pushes.

After merge the protect-main ruleset's required checks move from the four test (os, autocrlf) contexts to ci plus the packed-install contexts (before/after saved in the devlog).

Validation

  • Local: test-shard.test.mjs 4/4; node plugins/codexclaw/scripts/test.mjs --shard 2/2 "plugins/codexclaw/test/*.test.mjs" ran 16 files, 272 tests, exit 0; aggregate logic checked with success and skipped/cancelled fixtures.
  • This PR runs the new ci.yml on its own head: the ci check and the four Windows shards are the proof.
  • WSL runs only after merge; the dev push run is recorded in the devlog.

…full-suite badge lane

scripts/test.mjs learns --shard i/n: it expands the test globs itself, sorts the
POSIX-normalized paths and keeps every file whose index % n === i - 1, so shards
partition the suite deterministically on every OS (test-shard.test.mjs proves
union, disjointness and separator-agnostic order over the real package.json
patterns). ci.yml runs the ubuntu lane whole so the tests badge total is still
measured, keeps macOS whole, splits each Windows autocrlf variant into two
shards with a 12-minute bound, cancels superseded PR runs only, and adds an
if: always() ci job that fails unless every leg reports success.
…y, as two parallel jobs

The 13-14 minute WSL lane proves an installation property (drvfs vs ext4
diagnosis), not a review property, so it leaves pull_request and runs on push
to main/preview/dev and workflow_dispatch. The drvfs and ext4 checkouts become
separate jobs with a 20-minute bound so they run side by side. README gains a
table of which checks run on pull requests and which on integration lines.
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 9, 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-09-09T22:07:53.357819Z 2535483 PR opened
ℹ️ 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: 2535483654

ℹ️ 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 README.md
| Check | Pull request | Push to `dev` / `preview` / `main` |
|---|---|---|
| `ci` (aggregate of `test (ubuntu-latest, false)`, `test (macos-latest, false)`, four Windows shards) | yes | yes |
| `artifact (…)` / `install (…)` packed-install lifecycle | yes | yes |

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Add preview to the packed-install trigger

On pushes to preview, this row promises that the packed-install artifact (…) and install (…) jobs run, but .github/workflows/packed-install.yml still limits its push trigger to [main, dev]. Consequently, preview commits receive no packed-install lifecycle coverage despite being documented as an integration-line push; either include preview in that workflow's trigger or correct the table.

Useful? React with 👍 / 👎.

@lidge-jun
lidge-jun merged commit ba45886 into dev Sep 9, 2026
12 checks passed
@lidge-jun
lidge-jun deleted the codex/ci-modernization branch September 9, 2026 22:13
thisisjun786 pushed a commit to thisisjun786/codexclaw that referenced this pull request Sep 10, 2026
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