From c50d5079e498e343841a152031681ebdaffef288 Mon Sep 17 00:00:00 2001 From: Connor McDonald Date: Tue, 9 Jun 2026 20:37:34 +0200 Subject: [PATCH] ci: test on macOS; document Windows as unsupported MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Split CI into a Linux-only lint job (fmt + clippy) and a test job that runs `cargo test --all` + dogfood across [ubuntu-latest, macos-14] — so the Darwin path/tree-sitter behavior that release.yml ships is exercised before a binary reaches users. State Windows as unsupported in the README and install docs. Closes #37 Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/ci.yml | 14 ++++++++++++++ README.md | 5 +++-- docs/getting-started/install.md | 14 +++++++++++++- 3 files changed, 30 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e2a1a32..4b4eb3f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,6 +9,7 @@ env: CARGO_TERM_COLOR: always jobs: + # Lint is platform-independent — run it once on Linux to avoid duplicate noise. check: runs-on: ubuntu-latest steps: @@ -19,6 +20,19 @@ jobs: run: cargo fmt --all --check - name: Clippy run: cargo clippy --all-targets --all-features -- -D warnings + + # Tests + dogfood on every OS we ship a release binary for (release.yml uses macos-14 + # for aarch64-apple-darwin), so Darwin path/tree-sitter behavior is exercised pre-release. + test: + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, macos-14] + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v6 + - name: Install toolchain (pinned via rust-toolchain.toml) + run: rustup show - name: Test run: cargo test --all - name: Surface self-check (dogfood) diff --git a/README.md b/README.md index 8274f26..9de35bc 100644 --- a/README.md +++ b/README.md @@ -135,8 +135,9 @@ Or the install script: curl --proto '=https' --tlsv1.2 -fsSL https://raw.githubusercontent.com/Connorrmcd6/surface/main/install.sh | sh ``` -Prebuilt binaries for macOS (Apple Silicon) and Linux (x86_64); build from source elsewhere. Full -options — pre-commit hook, `cargo install`, the architecture matrix — in +Prebuilt binaries for macOS (Apple Silicon) and Linux (x86_64); build from source on other +Unix arches. Windows is **not supported** (the anchor grammar requires forward-slash paths). +Full options — pre-commit hook, `cargo install`, the architecture matrix — in [Install](docs/getting-started/install.md). ## Documentation diff --git a/docs/getting-started/install.md b/docs/getting-started/install.md index 310dae9..37e80e8 100644 --- a/docs/getting-started/install.md +++ b/docs/getting-started/install.md @@ -41,7 +41,19 @@ curl --proto '=https' --tlsv1.2 -fsSL https://raw.githubusercontent.com/Connorrm ``` Prebuilt binaries are published for **macOS (Apple Silicon)** and **Linux (x86_64)**. On Intel -macOS, Windows, or other architectures, build from source. +macOS or other Unix architectures, build from source. + +## Platform support + +| Platform | Status | +| --- | --- | +| macOS (Apple Silicon) | prebuilt binary | +| Linux (x86_64) | prebuilt binary | +| Intel macOS, other Unix arches | build from source | +| Windows | **not supported** | + +Windows is unsupported: anchor `at:` paths are forward-slash only, and the install script +rejects non-Unix systems. Use WSL if you need Surface on a Windows machine. ## From source