Skip to content

ci: split Windows unit signal by package#139

Merged
Astro-Han merged 1 commit into
devfrom
codex/feat-windows-ci-split
Apr 22, 2026
Merged

ci: split Windows unit signal by package#139
Astro-Han merged 1 commit into
devfrom
codex/feat-windows-ci-split

Conversation

@Astro-Han

@Astro-Han Astro-Han commented Apr 22, 2026

Copy link
Copy Markdown
Owner

Summary

  • split the advisory Windows unit signal into app, desktop, and opencode jobs
  • keep Windows package jobs outside the required ci / check aggregate
  • stop publishing separate failing Windows JUnit report checks while preserving package artifacts

Why

The previous unit-windows job ran the full unit suite in one advisory Windows job. A timeout or flaky failure in one package made the whole Windows signal noisy and hard to diagnose. Issue #137 scopes this to package-level Windows signals while keeping the required Linux gate unchanged.

Related Issue

Closes #137

How To Verify

bun --cwd packages/opencode test test/github/ci-workflow.test.ts
actionlint .github/workflows/ci.yml
git diff --check

Screenshots or Recordings

Not applicable, CI-only change.

Checklist

  • I linked the related issue, or stated why there is no issue
  • This PR has type, scope, and priority labels, or I requested maintainer labeling
  • I listed the relevant verification steps, including tests when behavior changed
  • I manually checked visible UI or copy changes when needed, with screenshots or recordings
  • I considered macOS and Windows impact for desktop, packaging, updater, signing, paths, shell, or permissions changes
  • I called out docs, release notes, dependencies, permissions, credentials, deletion behavior, or generated/local file changes when relevant
  • I am targeting dev, and my PR title and commit messages use Conventional Commits in English

Summary by CodeRabbit

  • Chores
    • Restructured Windows CI testing pipeline to separate and run package-specific test suites independently, improving test isolation, artifact organization, and execution efficiency.
    • Enhanced test infrastructure with improved configuration patterns and dynamic job generation for better maintainability, scalability, and test reporting.

@Astro-Han Astro-Han added enhancement New feature or request ci Continuous integration / GitHub Actions windows Windows-specific flaky-test Non-deterministic test failure P1 High priority labels Apr 22, 2026
@coderabbitai

coderabbitai Bot commented Apr 22, 2026

Copy link
Copy Markdown
Contributor

Warning

Rate limit exceeded

@Astro-Han has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 6 minutes and 47 seconds before requesting another review.

Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 6 minutes and 47 seconds.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 12030efe-e318-43f1-8d41-7bc450f0ca4d

📥 Commits

Reviewing files that changed from the base of the PR and between 6b864d1 and 6c1bc0b.

📒 Files selected for processing (3)
  • .github/workflows/ci.yml
  • packages/opencode/test/github/ci-workflow.test.ts
  • packages/opencode/test/github/workflow-parser.ts
📝 Walkthrough

Walkthrough

Refactored Windows unit testing in CI workflow by splitting the single unit-windows job into three package-scoped jobs (unit-windows-app, unit-windows-desktop, unit-windows-opencode), each running targeted Turbo filters with artifact uploads. Updated workflow tests to verify per-package job behavior and extended workflow-parser type with optional defaults field.

Changes

Cohort / File(s) Summary
CI Workflow Refactoring
.github/workflows/ci.yml
Renamed unit-windows to unit-windows-app, increased timeout to 20 minutes, removed permissions.checks: write, and replaced JUnit publishing with artifact uploads. Added two new Windows jobs (unit-windows-desktop, unit-windows-opencode) with package-specific Turbo filters and per-package artifact paths. Updated Turbo cache keys to reflect new job names.
Workflow Test Updates
packages/opencode/test/github/ci-workflow.test.ts
Introduced data-driven unitPackages definitions and derived job metadata arrays. Refactored assertions to dynamically verify three Windows unit jobs with per-package Turbo commands, artifact uploads (without JUnit publishing), and run-attempt-scoped artifact names. Updated aggregate job tests to include new unit-windows-* jobs in docs-only behavior checks.
Type Definitions
packages/opencode/test/github/workflow-parser.ts
Extended WorkflowJob type with optional defaults field supporting run.shell configuration.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

Possibly related issues

Possibly related PRs

Poem

🐰 Three jobs now bloom where one did stand,
Windows tests split across the land,
Each package gets its rightful care,
With artifacts floating in the air! ✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title 'ci: split Windows unit signal by package' is concise, specific, and accurately summarizes the main change—splitting Windows unit jobs into separate package-level signals.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description check ✅ Passed The pull request description follows the template structure with all major sections completed: Summary, Why, Related Issue, How To Verify, Screenshots/Recordings, and Checklist all present and appropriately filled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/feat-windows-ci-split

Comment @coderabbitai help to get the list of available commands and usage tips.

@gemini-code-assist gemini-code-assist 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.

Code Review

This pull request refactors the CI workflow tests to accommodate splitting the Windows unit test job into package-specific jobs for the app, desktop, and opencode packages. It introduces categorized job lists to manage test assertions for checkout, caching, and artifact handling. A review comment suggests further refactoring these lists by deriving job names from a shared package list to improve maintainability and ensure consistency across Linux and Windows job definitions.

Comment thread packages/opencode/test/github/ci-workflow.test.ts Outdated
@Astro-Han

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Apr 22, 2026

Copy link
Copy Markdown
Contributor
✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@Astro-Han Astro-Han left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Reviewing the Windows CI split implementation. A few nitpicks below.

Comment thread .github/workflows/ci.yml Outdated
Comment thread packages/opencode/test/github/ci-workflow.test.ts
Comment thread packages/opencode/test/github/ci-workflow.test.ts

@Astro-Han Astro-Han left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Additional nitpicks on consistency and test coverage.

Comment thread .github/workflows/ci.yml
Comment thread .github/workflows/ci.yml Outdated
Comment thread packages/opencode/test/github/ci-workflow.test.ts

@Astro-Han Astro-Han left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

One more observation on test coverage consistency.

Comment thread packages/opencode/test/github/ci-workflow.test.ts Outdated
Comment thread packages/opencode/test/github/workflow-parser.ts
@Astro-Han Astro-Han force-pushed the codex/feat-windows-ci-split branch from 43e88ec to 5c9219a Compare April 22, 2026 11:07
@Astro-Han Astro-Han force-pushed the codex/feat-windows-ci-split branch from 5c9219a to 6c1bc0b Compare April 22, 2026 11:25
@Astro-Han Astro-Han merged commit 4a928a6 into dev Apr 22, 2026
21 checks passed
@Astro-Han Astro-Han deleted the codex/feat-windows-ci-split branch April 22, 2026 11:52
@coderabbitai coderabbitai Bot mentioned this pull request May 3, 2026
11 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci Continuous integration / GitHub Actions enhancement New feature or request flaky-test Non-deterministic test failure P1 High priority windows Windows-specific

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] Split Windows CI unit signal by package

1 participant