From 9d85c40574e69b504ce7dc4fbecbf805859f5371 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?An=C4=B1l=20Beyazo=C4=9Flu?= Date: Thu, 3 Sep 2026 13:48:10 +0300 Subject: [PATCH] Drop the release build from CI and skip bots in the contributor check The ReleaseFast build dominated the CI run: check and test finish in a couple of minutes, then build spends far longer on Ghostty and the optimised compile. `native test` already compiles the app in Debug, so the marginal signal did not justify the wait on every pull request. Running `npm run build` is now a contributor responsibility, which CONTRIBUTING.md and the pull request template say explicitly rather than leaving people to assume CI covers it. Also skip the contributor check for bots. Dependabot's three pull requests were each labelled external-contributor and told they were not Docyrus members, which is noise on every dependency bump. The job keeps the name "build and test" so the required status check in the main ruleset keeps matching. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01K4JoCqrnJ47MqzHk9PsZ33 --- .github/pull_request_template.md | 2 +- .github/workflows/ci.yml | 10 +++++----- .github/workflows/contributor-check.yml | 2 ++ CONTRIBUTING.md | 7 ++++++- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 8da02a2..29100b5 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -12,7 +12,7 @@ - [ ] `npm run check` - [ ] `npm test` -- [ ] `npm run build` (required if this touches the build, `app.json`, or bridge commands) +- [ ] `npm run build` — **not run by CI**; required if this touches the build, `app.json`, or bridge commands - [ ] Ran `npm run dev` and exercised the change in a real window Steps you clicked through, and what you observed: diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cb88da2..b21d102 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -56,10 +56,10 @@ jobs: run: npm run check # `native` asks before downloading its pinned Zig toolchain, and CI has no - # tty to answer, so pass --yes. The first zig-needing step fetches it; the - # cache above keeps later runs from re-downloading. + # tty to answer, so pass --yes. This step fetches it on a cold cache. + # + # CI does not run `npm run build`: the ReleaseFast build dominates the run + # time, and `native test` already compiles the app in Debug. Run + # `npm run build` locally before anything that touches the build graph. - name: Test run: npm test -- --yes - - - name: Build - run: npm run build -- --yes diff --git a/.github/workflows/contributor-check.yml b/.github/workflows/contributor-check.yml index 92f2364..36782fa 100644 --- a/.github/workflows/contributor-check.yml +++ b/.github/workflows/contributor-check.yml @@ -17,6 +17,8 @@ permissions: jobs: membership: name: check author membership + # Bots open pull requests too (Dependabot), and they are never org members. + if: github.event.pull_request.user.type != 'Bot' runs-on: ubuntu-latest steps: - name: Flag non-member pull requests diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3ec356b..a319e74 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -51,12 +51,17 @@ pick a folder. ```sh npm run check # markup, manifest, and core validation npm test # Zig unit tests in src/main.zig -npm run build # release build — run for anything touching the build or manifest +npm run build # release build — CI does not run this, so run it yourself ``` `check`, `test`, and `build` all regenerate `frontend/dist/tree.js` first, so run them before committing if you touched `frontend/tree.js`. +CI runs `check` and `test` only — the ReleaseFast build is too slow to gate every +pull request, and `native test` already compiles the app in Debug. That makes +`npm run build` your responsibility for anything touching the build graph, +`app.json`, or bridge commands: a release-only break will not be caught for you. + ## Working in this codebase The layout, invariants, and the bridge-command checklist live in