Skip to content

Commit 5adfcb8

Browse files
amacbrideclaude
andcommitted
ci: add lean cargo-check tripwire on develop pushes
The Rust Check / TypeScript / Treefmt jobs in evaluate.yml run only on pull_request and merge_group, so nothing re-validates develop after a commit lands on it. Add a push trigger on develop that re-runs cargo check against the post-merge tip — a detector, not a gate: it can't block (the commit is already on develop) but flips develop's commit status red within ~1 min when something slips past the pre-merge gate, e.g. the main->develop merge producing a broken tree from two individually green parents. Keep the tripwire genuinely lightweight: - Only the Rust Check job runs on push; TypeScript and Treefmt are guarded to PR/merge_group (the develop tripwire is cargo check alone, since compile breakage is the failure mode we keep hitting). - Rust Check now sets install-devenv: false and install-bun-deps: false. cargo check needs only the Rust toolchain plus the system C compiler (libgit2-sys / libsqlite3-sys build their vendored C with `cc`); it does not need the devenv profile (node/bun/sops/python). On the prior run the check itself was 52s but devenv provisioning was ~8 min — this drops that to a ~1 min toolchain setup, speeding up the PR check too. The full build (build.yaml) is unaffected and still provides heavyweight coverage. Context: ENG-550. The pre-merge cargo-check gate on develop already exists (evaluate.yml since 2026-06-04; required via ruleset since 2026-06-08); this adds the post-merge safety net without adding meaningful CI cost. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 8a3e7e7 commit 5adfcb8

1 file changed

Lines changed: 21 additions & 0 deletions

File tree

.github/workflows/evaluate.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,15 @@ on:
44
pull_request:
55
types: [opened, synchronize, reopened, ready_for_review]
66
merge_group:
7+
# Post-merge tripwire: re-run cargo check on develop itself so any compile
8+
# breakage that slips past the pre-merge gate (merge-queue edge cases, the
9+
# main->develop merge producing a broken tree from two green parents, a
10+
# ruleset change) turns develop's commit status red quickly instead of
11+
# costing the next person a confusing local build failure. Only the Rust
12+
# Check job runs on push (see the per-job `if` guards below); the full build
13+
# already gates the PR path.
14+
push:
15+
branches: [develop]
716
workflow_dispatch:
817

918
concurrency:
@@ -21,17 +30,27 @@ jobs:
2130
- name: Checkout repository
2231
uses: actions/checkout@v6
2332

33+
# cargo check needs only the Rust toolchain plus the system C compiler
34+
# (libgit2-sys / libsqlite3-sys build their vendored C with `cc`). It does
35+
# not need the devenv profile (node/bun/sops/python) or JS deps, so skip
36+
# both — that drops the ~8 min devenv provisioning to a ~1 min toolchain
37+
# setup. This speeds up the PR check too; the full build (build.yaml) is
38+
# unaffected and still provides heavyweight coverage.
2439
- uses: ./.github/actions/setup
2540
with:
2641
darkmatter-cachix-auth-token: ${{ secrets.DARKMATTER_CACHIX_AUTH_TOKEN }}
2742
setup-rust: true
2843
rust-cache-workspaces: apps/native/src-tauri
44+
install-devenv: false
45+
install-bun-deps: false
2946
- name: Check Rust app crate
3047
working-directory: apps/native/src-tauri
3148
run: cargo check --locked
3249

3350
typescript:
3451
name: TypeScript
52+
# PR/merge-queue only — the develop push tripwire is cargo check alone.
53+
if: github.event_name != 'push'
3554
runs-on: ubuntu-latest
3655
steps:
3756
- name: Checkout repository
@@ -53,6 +72,8 @@ jobs:
5372

5473
treefmt:
5574
name: Treefmt
75+
# PR/merge-queue only — the develop push tripwire is cargo check alone.
76+
if: github.event_name != 'push'
5677
runs-on: ubuntu-latest
5778
steps:
5879
- name: Checkout repository

0 commit comments

Comments
 (0)