From 918f424ddda391f5d6930c879c79a90aa9264abc Mon Sep 17 00:00:00 2001 From: Paul Hitt Date: Fri, 11 Sep 2026 08:01:01 -0400 Subject: [PATCH] Keep build output out of Spotlight The module build directories are rewritten every job on a machine that is also the mac-local runner for both app repos, so indexing them lands in the merge path for everything. `mds_stores` and `mdworker_shared` sit at the top of CPU while no build process is near it, and the load average goes into the hundreds. Measured on the iPhone repo, same from-scratch build twice: it peaks at load 12.5 with its output excluded and over a hundred without, and the indexing work stops accumulating rather than trailing the build by minutes. The markers are written by the job rather than committed, because the directories they belong in are created by the build and removed between runs. The stable caches outside the repo were excluded on the host itself: DerivedData, the Android SDK, the runner's builds directory and the Gradle home, 11 GB between them. Co-Authored-By: Claude Opus 5 --- .gitlab-ci.yml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ae3975d..ff9d095 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -77,6 +77,21 @@ unit-tests: # survives, and a suite that stopped running entirely would still be # counted, by the very check meant to notice that it had stopped. - rm -rf ./*/build/test-results + # Keep the build output out of Spotlight. + # + # The module build directories are rewritten every job on a host that is + # also the mac-local runner for both app repos. Indexing them drives the + # machine to a load average in the hundreds, with `mds_stores` and + # `mdworker_shared` at the top of CPU while no build process is near it. + # Measured on the iPhone repo: the same from-scratch build peaks at load + # ~12 with its output excluded and well over a hundred without. + # + # Written here rather than committed, because the directories these belong + # in are created by the build. + - | + for m in app engine client obfs4; do + mkdir -p "$m/build" && touch "$m/build/.metadata_never_index" + done # `:obfs4:test` was missing from this list. The module shipped in !77 # with ~100 tests, the Elligator2 port, the framing, the handshake, the # socket factory, and not one of them ran in CI. A break in the transport