Skip to content

Split Windows CI native and wasm/web jobs - #331

Open
tameware wants to merge 5 commits into
dds-bridge:developfrom
tameware:refactor-windows-ci
Open

Split Windows CI native and wasm/web jobs#331
tameware wants to merge 5 commits into
dds-bridge:developfrom
tameware:refactor-windows-ci

Conversation

@tameware

Copy link
Copy Markdown
Collaborator

Summary

  • Split ci_windows.yml into parallel build_and_test (native //... excluding wasm/web) and wasm_web (//wasm/... + //web/...) jobs.
  • Keep --config=opt and --test_output=errors on both jobs; add CI guards so the split cannot silently regress.

Test plan

  • bazelisk test //python:ci_windows_cppopts_test
  • Confirm Windows CI shows two parallel jobs and native finishes faster than the previous monolithic //... run
  • Confirm wasm_web still builds/tests emsdk targets on Windows

Made with Cursor

Keeps emsdk off the native MSVC critical path while preserving
Windows-host coverage of //wasm and //web in a separate job.

Co-authored-by: Cursor <cursoragent@cursor.com>
@tameware

Copy link
Copy Markdown
Collaborator Author

@copilot review

Keep the native/wasm_web Windows split and restore the pointer to
ci_windows_dotnet.yml from develop.

Co-authored-by: Cursor <cursoragent@cursor.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Splits the Windows GitHub Actions workflow into two parallel jobs so native MSVC builds/tests are not gated by wasm/web (emsdk) work, while adding Python CI-guard tests to ensure the split and required Bazel flags don’t regress.

Changes:

  • Split .github/workflows/ci_windows.yml into build_and_test (native //... excluding //wasm/... and //web/...) and wasm_web (//wasm/... + //web/...) jobs.
  • Keep --config=opt and --test_output=errors across Windows bazelisk build/test invocations and upload distinct test-log artifacts per job.
  • Extend python/tests/ci_windows_cppopts_test.py with workflow-structure parsing and assertions to guard the job split, target scoping, and artifact naming.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
.github/workflows/ci_windows.yml Splits Windows CI into parallel native vs wasm/web jobs with scoped Bazel target patterns and distinct artifacts.
python/tests/ci_windows_cppopts_test.py Adds CI-guard tests that validate the Windows workflow’s job split, target scopes, and required Bazel flags.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread .github/workflows/ci_windows.yml Outdated
tameware and others added 2 commits August 16, 2026 11:45
pwsh treats bare -//wasm/... as a switch and drops Bazel's -- marker,
so native fetch/build/test failed with Invalid options syntax.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.

Suppressed comments (1)

python/tests/ci_windows_cppopts_test.py:389

  • _workflow_job_bodies() never exits the jobs: section; if the workflow later adds another top-level key after jobs: (e.g. permissions:/concurrency:), the parser can misinterpret those as jobs or append them to the last job body. This makes the CI guard brittle and can yield incorrect job bodies.
        if current is None:
            continue
        if line.startswith("  ") or not line.strip():
            jobs[current].append(line)
        else:

pwsh 7 swallows a bare -- before bazelisk, which made -//wasm/... look
like a flag. Also stop the CI workflow parser at the next top-level key.

Co-authored-by: Cursor <cursoragent@cursor.com>
@tameware

Copy link
Copy Markdown
Collaborator Author

Addressed the remaining PR issues:

  • Native Windows fetch/build/test now quotes '--' so PowerShell 7 does not swallow Bazel's end-of-options marker (that was still failing CI with Invalid options syntax: -//wasm/...).
  • CI-guard parser now stops at the next top-level YAML key, matching the suppressed Copilot note on _workflow_job_bodies().

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.

@tameware
tameware requested a review from zzcgumn August 16, 2026 12:49
@tameware

Copy link
Copy Markdown
Collaborator Author

@zzcgumn, I suggest merging this into the 3.1 release so that its CI can pass reliably.

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.

2 participants