Skip to content

Commit 0fd5fa3

Browse files
authored
chore(ci): drop clippy+test from release pipeline; keep gate local-only (#23)
PR #21 moved clippy+test from PR-time ci.yml to release.yml on the theory that paying ~15 min once per release was cheaper than paying it on every PR push. The first real run came in at ~30+ min on the shared self-hosted Apple Silicon runner, which inverts the trade-off — release builds now block on a slow lint/test pass that `make verify` would have caught locally in seconds. This commit removes the fmt/clippy/test steps from release.yml's `build-macos` job (and reverts the `components: clippy, rustfmt` addition), and updates ci.yml's header comment to document that the quality gate is local-only via `make verify` / `make verify-clean`. PR-time CI keeps cargo-deny + cargo-fmt on ubuntu (cheap, no self-hosted runner involvement). The release pipeline goes back to its pre-#21 shape: build, sign, package, upload.
1 parent c7f40e1 commit 0fd5fa3

2 files changed

Lines changed: 27 additions & 21 deletions

File tree

.github/workflows/ci.yml

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,16 @@
22
# advisory) and cargo-fmt on every touched-Rust change so formatting drift and
33
# license issues are caught at PR time.
44
#
5-
# Clippy and cargo-test used to run here as `clippy + test (macOS ARM64)` on
6-
# the self-hosted Apple Silicon runner, but each run consumed ~15 minutes of
7-
# that single shared runner per PR push. Those gates were moved to the release
8-
# workflow (`release.yml::build-macos`), which now runs fmt/clippy/test before
9-
# producing signed artifacts. Local developers should run `make verify` (or
10-
# `make verify-clean` for a cache-clear pass) before pushing to catch
11-
# regressions that release-time CI will otherwise surface.
5+
# Clippy and cargo-test do NOT run in any workflow. They used to run on the
6+
# self-hosted Apple Silicon runner — first here at PR time, then briefly in
7+
# release.yml — and in both cases consumed ~30 min per run, blocking either
8+
# PRs or releases on a shared resource for failures that `make verify`
9+
# reliably catches on the developer's machine in a fraction of the time.
10+
#
11+
# Quality gate lives locally. Pre-push checklist:
12+
# make verify # fmt + clippy(metal,accelerate, -D warnings) + test(release)
13+
# make verify-clean # same, after `cargo clean` — use when clippy's
14+
# # per-crate cache may be hiding a regression
1215
#
1316
# Note on CUDA gating: CUDA verification stays exclusive to release.yml because
1417
# it requires a Linux self-hosted runner (currently only the GB10 node used for

.github/workflows/release.yml

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -96,21 +96,24 @@ jobs:
9696
uses: dtolnay/rust-toolchain@stable
9797
with:
9898
targets: aarch64-apple-darwin
99-
components: clippy, rustfmt
10099

101-
# Quality gate — fmt / clippy / test. Used to live in ci.yml's
102-
# `clippy + test (macOS ARM64)` job, but consumed ~15 min of the shared
103-
# self-hosted runner on every PR push for limited PR-time signal. Moved
104-
# here so the cost is paid once per release. Local devs should run
105-
# `make verify` before pushing to catch regressions earlier.
106-
- name: Format check
107-
run: cargo fmt --all -- --check
108-
109-
- name: Clippy
110-
run: cargo clippy --all-targets --features metal,accelerate -- -D warnings
111-
112-
- name: Test
113-
run: cargo test --release --features metal,accelerate
100+
# Lint and test deliberately do not run in this workflow.
101+
#
102+
# `clippy + test` against the macOS Apple Silicon target takes ~30+ min
103+
# on the shared self-hosted runner. We tried gating it at PR time
104+
# (ci.yml::clippy-and-test) and at release time (this job, see #21),
105+
# and in both cases the cost outweighed the signal — PRs and releases
106+
# were both being blocked on a slow shared resource for failures that
107+
# `make verify` / `make verify-clean` reliably catch on the developer's
108+
# machine in a fraction of the time.
109+
#
110+
# Quality gate lives locally now. Pre-push checklist:
111+
# make verify # fmt + clippy(metal,accelerate, -D warnings) + test(release)
112+
# make verify-clean # same, after `cargo clean` — use when clippy's
113+
# # per-crate cache may be hiding a regression
114+
#
115+
# PR-time CI (ci.yml) still runs cargo-deny and cargo-fmt on ubuntu
116+
# for cheap license/format drift detection.
114117

115118
- name: Build release binaries
116119
run: cargo build --release --target aarch64-apple-darwin --locked

0 commit comments

Comments
 (0)