Skip to content

ci: add Windows test coverage #257

@erishforG

Description

@erishforG

Problem

Currently, CI only runs tests on ubuntu-latest. Windows binaries are built in the release workflow but never tested. This means Windows-specific bugs (path separators, file locking, symlinks, worktree paths) go undetected until users report them.

Current State

Job ubuntu macOS Windows
cargo test - -
cargo build -
Release binary

Proposal

Step 1: Add Windows to CI matrix (low effort, high impact)

Expand test and build jobs in ci.yml to include windows-latest:

test:
  name: Test (${{ matrix.os }})
  runs-on: ${{ matrix.os }}
  strategy:
    matrix:
      os: [ubuntu-latest, windows-latest]

build:
  strategy:
    matrix:
      os: [ubuntu-latest, macos-latest, windows-latest]

Step 2: Fix failing tests (medium effort)

Identify and fix Windows-specific issues:

  • Path separator handling (/ vs \)
  • File locking behavior differences (.parsec/state.json)
  • Symlink permissions
  • Sibling worktree layout path resolution (../repo.ticket/)
  • Process signal handling

Step 3: Add Windows-specific tests (optional)

  • Path handling edge cases (C:\, UNC paths)
  • cfg(windows) branch coverage

Acceptance Criteria

  • cargo test passes on windows-latest in CI
  • cargo build --release passes on windows-latest in CI
  • No regressions on Linux/macOS

Notes

  • Windows runners are 2x cost vs Linux, but free for public repos
  • Step 1 alone provides immediate visibility into what's broken

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions