Skip to content

CI: add macOS to the Go build/test matrix #62

@mrjf

Description

@mrjf

Summary

Every workflow in .github/workflows/ runs exclusively on ubuntu-slim or ubuntu-latest. As a result, darwin-only build failures in the Go module are not caught by CI.

Evidence this matters

Issue #61 documents a concrete example: `internal/utils/reflink` fails to build on darwin (missing `reflink_darwin.go`), but every PR to date has been green because no CI job exercises macOS. The package's own doc comment claims APFS support, so this isn't a tracked unsupported-platform — it's a regression nobody can see.

Given that:

  • The repo ships an `install.sh` and an `install.ps1` (implying multi-platform user intent)
  • The Go port uses OS-specific build tags (`reflink_linux.go`, `reflink_other.go`) where platform divergence is expected
  • The autoloop agent generates code without cross-platform test feedback

…the autoloop will keep introducing darwin breakage at roughly the rate it touches platform-tagged code, and nobody will know until somebody clones on a Mac.

Suggested change

Add a macOS runner to the Go build/test job in `.github/workflows/ci.yml` (and any sibling Go workflows). Minimal version:

```yaml
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}
```

If macOS minutes are a concern, restricting it to `go build ./...` (skipping the full `go test ./...`) would still catch the entire class of build-tag regressions at low cost.

Windows would be a nice-to-have for completeness (the install.ps1 suggests it's in scope) but darwin is the higher-priority gap given the install.sh path.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions