Skip to content

ci: add cross-platform test matrix (macos + windows + linux)#17

Merged
bezata merged 1 commit into
mainfrom
ci/cross-platform-matrix
Apr 24, 2026
Merged

ci: add cross-platform test matrix (macos + windows + linux)#17
bezata merged 1 commit into
mainfrom
ci/cross-platform-matrix

Conversation

@bezata
Copy link
Copy Markdown
Owner

@bezata bezata commented Apr 24, 2026

Summary

  • New `.github/workflows/ci.yml` runs `typecheck + lint + test + build` across `ubuntu-latest`, `macos-latest`, and `windows-latest` on every PR and every push to main.
  • Lands standalone on the v0.2.5 baseline (no feature changes here) so we establish a confirmed green cross-platform baseline before v0.3.0's vault-discovery work, which will add real platform-sensitive path resolution code.
  • Existing `release.yml` is untouched — it still runs its own test gate on `ubuntu-latest` inside `prepublishOnly` at tag-push time. This workflow sits on top, keeping main green between releases.

Why

Today we have no cross-OS CI at all. A Windows-only or macOS-only regression could sit in main for weeks unnoticed. The upcoming `vault.*` feature (v0.3.0) introduces `os.homedir()` + `process.platform` branching for Obsidian's `obsidian.json` discovery — exactly the kind of code that silently breaks on one OS if you only test on another.

Cost

  • ~3 min wall-clock per PR (three runners in parallel, `fail-fast: false`).
  • `cancel-in-progress: true` on concurrency means superseded runs are killed when you push new commits, keeping queue pressure low.

Test plan

  • YAML syntax validated locally
  • Confirm workflow triggers on this PR and all three matrix legs go green
  • After merge, confirm green on `push: main`

🤖 Generated with Claude Code

Every PR and every push to main now runs typecheck + lint + test + build
across ubuntu-latest, macos-latest, and windows-latest in parallel.
Catches platform regressions (Windows path separators, macOS case folding,
Linux XDG paths) before they land rather than after a release tag.

Existing release.yml is unchanged — it still handles tag-push publishing
and runs its own test gate on ubuntu-latest inside prepublishOnly. This
workflow sits on top, keeping main green across all three platforms
between releases.

Lands standalone on the v0.2.5 baseline so we have a confirmed green
cross-platform baseline before any v0.3.0 feature work.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@bezata bezata merged commit ce56158 into main Apr 24, 2026
3 checks passed
@bezata bezata deleted the ci/cross-platform-matrix branch April 24, 2026 22:20
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