Skip to content

ci: drop macOS from test matrix (fix TestScale_1000Notes flake)#49

Merged
aksOps merged 2 commits intomainfrom
ci-trim-main-triggers
Apr 23, 2026
Merged

ci: drop macOS from test matrix (fix TestScale_1000Notes flake)#49
aksOps merged 2 commits intomainfrom
ci-trim-main-triggers

Conversation

@aksOps
Copy link
Copy Markdown
Contributor

@aksOps aksOps commented Apr 23, 2026

Summary

Drops macOS from the CI test matrix. Linux-only coverage is sufficient — Darwin build coverage is preserved in the release workflow (goreleaser builds `darwin-arm64`).

Why

`TestScale_1000Notes` on macOS runners hit a `t.TempDir()` cleanup race: autoCommit background git subprocesses still held handles on `.git/objects` when `RemoveAll` ran, causing:

```
testing.go:1369: TempDir RemoveAll cleanup: unlinkat .git/objects: directory not empty
```

Root cause is in `internal/notes`, not OS-specific beyond macOS filesystem timing. The underlying flake can be fixed in a separate PR (likely needs a sync.WaitGroup drain in the test cleanup). For now the CI value of double-coverage doesn't justify the flake cost.

Changes

  • `.github/workflows/ci.yml`: `os: [ubuntu-latest, macos-latest]` → `os: [ubuntu-latest]`
  • Removed macOS-specific `clang --version` step
  • Removed macOS-specific `~/Library/Caches/go-build` cache path

Branch protection

Already updated via `gh api` to drop `test (macos-latest)` from required status checks. Remaining required: `ui (build + test + budget)`, `test (ubuntu-latest)`, `integration tests (-race)`.

Test plan

  • CI runs only `test (ubuntu-latest)` on this PR — no macOS job
  • PR merges cleanly without the dropped required check blocking

🤖 Generated with Claude Code

aksOps and others added 2 commits April 23, 2026 06:25
PR CI already validates the merged-state tree (GitHub tests
pull/N/merge). Re-running ci.yml and fuzz.yml on main after a
squash-merge adds no signal and costs ~2 min per merge.

CodeQL keeps its push:main trigger — the Security tab default-branch
data requires a push-scoped SARIF upload.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The macOS runner was flaking on TestScale_1000Notes due to a t.TempDir()
cleanup race where autoCommit background git processes still hold
handles when RemoveAll runs. Darwin build coverage is preserved in the
release workflow (goreleaser builds darwin-arm64).

Branch protection updated via API to remove 'test (macos-latest)' from
required status checks.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@aksOps aksOps merged commit c614cdc into main Apr 23, 2026
11 checks passed
@aksOps aksOps deleted the ci-trim-main-triggers branch April 23, 2026 06:51
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