Skip to content

fix(jsx-email): windows CI support#450

Merged
shellscape merged 26 commits into
mainfrom
charlie/windows-ci-support
May 16, 2026
Merged

fix(jsx-email): windows CI support#450
shellscape merged 26 commits into
mainfrom
charlie/windows-ci-support

Conversation

@charliecreates
Copy link
Copy Markdown
Contributor

Component / Package Name:

CI workflows, create-mail, and CLI smoke test path handling

This PR contains:

  • bugfix
  • feature
  • refactor
  • documentation
  • other

Are tests included?

  • yes (bugfixes and features will not be merged without tests)
  • no

Breaking Changes?

  • yes (breaking changes will not be merged unless absolutely necessary)
  • no

If yes, please include "BREAKING CHANGES:" in the first commit message body, followed by a description of what is breaking.

List any relevant issue numbers:

Refs #448

Description

This stacked PR isolates Windows CI support changes from #448.

  • adds Windows runners/jobs in test.yml, test-cli.yml, and test-smoke-v2.yml
  • includes Windows path/snapshot fixes in CLI and create-mail tests
  • includes Windows-specific watcher/test adjustments used by smoke v2

Base branch is charlie/smoke-v2-playwright-container so this PR contains only the Windows-specific delta on top of the rewritten Playwright/container branch.

@shellscape shellscape force-pushed the charlie/smoke-v2-playwright-container branch from a5a97f4 to 37a23c6 Compare May 15, 2026 23:57
Base automatically changed from charlie/smoke-v2-playwright-container to main May 16, 2026 00:06
@shellscape shellscape force-pushed the charlie/windows-ci-support branch 2 times, most recently from ae92c0c to c84f51a Compare May 16, 2026 02:26
@shellscape shellscape force-pushed the charlie/windows-ci-support branch from c84f51a to 9b85427 Compare May 16, 2026 02:33
@shellscape shellscape force-pushed the charlie/windows-ci-support branch from 3f4d87b to b2b48e2 Compare May 16, 2026 03:29
@shellscape shellscape force-pushed the charlie/windows-ci-support branch 6 times, most recently from 909ea5b to d0f72f8 Compare May 16, 2026 12:40
@shellscape shellscape force-pushed the charlie/windows-ci-support branch from d0f72f8 to dfea204 Compare May 16, 2026 12:52
@shellscape
Copy link
Copy Markdown
Owner

@CharlieHelps please do a thorough review of this PR to determine if it's ready to merge. Look at the diff, reviews, comments, and referenced issues/docs/links to build a complete understanding. Then respond with a comment that includes a list of MUST fix items that must be fixed before the the PR is merged, and a list of IMPROVEMENTS that shouldn't block the merge but may be quick improvements or things that could be addressed in a follow up PR. The MUST fix items should explain exactly what's wrong and what needs to change to resolve the problem. Both should be numbered lists and the IMPROVEMENTS list should continue counting up from the MUST list. It's OK if there are no IMPROVEMENTS or MUST fix items, you can just omit the lists.

@charliecreates
Copy link
Copy Markdown
Contributor Author

I did a full review pass over the PR diff, existing discussion/reviews, and the referenced context (Refs #448), plus current CI results.

I don’t see any MUST fix blockers before merge.

IMPROVEMENTS

  1. Use one consistent default for smoke state-path resolution.
    Right now test/smoke-v2/tests/smoke-v2.test.ts prefers process.env.TMPDIR, while the setup/start scripts default from os.tmpdir(). On Windows, Node doesn’t use TMPDIR for os.tmpdir(), so environments that set TMPDIR can write/read different state paths. Align all defaults to a single source of truth (prefer SMOKE_V2_STATE_PATH; otherwise os.tmpdir() everywhere) and add a regression test for Windows env combinations.
  2. Harden the Windows xz fallback in smoke workflow.
    In .github/workflows/test-smoke-v2.yml, the fallback attempts apt-get if xz is missing. That fallback is Linux-specific and would fail on Windows if runner images change. Use an OS-aware fallback (choco/winget) or fail with a clear Windows-targeted message.
  3. Short-circuit watcher event handling when callback receives an error.
    In packages/jsx-email/src/cli/watcher.ts, the callback processes incoming events even when an error is present. Add an early if (error) { ...; return; } guard and extend tests for the error + non-empty events case.

@shellscape shellscape merged commit a876f08 into main May 16, 2026
7 checks passed
@shellscape shellscape deleted the charlie/windows-ci-support branch May 16, 2026 17:21
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