fix(ci): make the native add-on binary-size gate RBE-compatible (#3425) #3506

Merged
mfreeman451 merged 1 commit from fix/addon-binary-size-rbe-compat into staging 2026-06-01 18:16:28 +00:00
Owner

What

The netprobe publish (and the staging tests(//...) lane) fail in the binary-size gate for two RBE-specific reasons — neither is a real size regression (the baseline is currently empty {}):

1. Make target didn't download the built binaries.
make check_addon_binary_size_bazel runs bazel build //build/native_addons:all_binaries under the CI's --remote_download_minimal (.bazelrc remote_base), so the cross-compiled bundle binaries are built remotely but not downloaded locally. The next cquery --output=files | check-addon-binary-size.sh then fails:

error: artifact not found: bazel-out/.../{netprobe,bumblebee_scan,sample}_addon_bundle_linux_{amd64,arm64}
binary-size regression gate FAILED

→ add --remote_download_outputs=all to that build.

2. binary_size_test sh_test fails closed on missing gsa on RBE.
The test set REQUIRE_GSA=1 but runs on RBE workers where go-size-analyzer isn't installed (it's go installed only on the workflow runner), so it exits 2 ("failing closed because the tool is missing") — the //build/native_addons:binary_size_test FAILED in the main CI. gsa isn't a hermetic Bazel tool yet, so drop to REQUIRE_GSA=0: the baseline size-regression check still runs, and the runner-side make addon_build_gates still produces the gsa breakdown.

Follow-up

add-hermetic-native-addon-builds (task 1.1) will pin gsa as a Bazel tool target and restore REQUIRE_GSA=1; this is the minimal RBE-compat unblock so a netprobe publish can complete.

🤖 Generated with Claude Code

## What The netprobe publish (and the staging `tests(//...)` lane) fail in the binary-size gate for **two RBE-specific reasons** — neither is a real size regression (the baseline is currently empty `{}`): **1. Make target didn't download the built binaries.** `make check_addon_binary_size_bazel` runs `bazel build //build/native_addons:all_binaries` under the CI's `--remote_download_minimal` (`.bazelrc` `remote_base`), so the cross-compiled bundle binaries are built **remotely but not downloaded** locally. The next `cquery --output=files | check-addon-binary-size.sh` then fails: ``` error: artifact not found: bazel-out/.../{netprobe,bumblebee_scan,sample}_addon_bundle_linux_{amd64,arm64} binary-size regression gate FAILED ``` → add `--remote_download_outputs=all` to that build. **2. `binary_size_test` sh_test fails closed on missing `gsa` on RBE.** The test set `REQUIRE_GSA=1` but runs on RBE workers where go-size-analyzer isn't installed (it's `go install`ed only on the workflow runner), so it exits 2 ("failing closed because the tool is missing") — the `//build/native_addons:binary_size_test FAILED` in the main CI. `gsa` isn't a hermetic Bazel tool yet, so drop to `REQUIRE_GSA=0`: the baseline size-regression check still runs, and the runner-side `make addon_build_gates` still produces the gsa breakdown. ## Follow-up `add-hermetic-native-addon-builds` (task 1.1) will pin `gsa` as a Bazel tool target and restore `REQUIRE_GSA=1`; this is the minimal RBE-compat unblock so a netprobe publish can complete. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
fix(ci): make the native add-on binary-size gate RBE-compatible (#3425)
Some checks failed
Secret Scan / gitleaks (pull_request) Successful in 29s
Golang Tests / test-go (push) Successful in 1m16s
lint / lint (push) Successful in 1m28s
lint / lint (pull_request) Successful in 1m11s
CI / build (pull_request) Failing after 2m49s
e21913dff0
The publish lane (and the staging `tests(//...)` lane) failed in the binary-size
gate for two RBE-specific reasons, neither of which is a real size regression
(the baseline is currently empty):

1. `make check_addon_binary_size_bazel` ran `bazel build //build/native_addons:all_binaries`
   under the CI's `--remote_download_minimal`, so the cross-compiled bundle binaries
   were built remotely but NOT downloaded locally; the subsequent
   `cquery --output=files | check-addon-binary-size.sh` then failed with
   "artifact not found: bazel-out/.../{netprobe,bumblebee_scan,...}". Add
   `--remote_download_outputs=all` so the artifacts land locally for the size check.

2. `//build/native_addons:binary_size_test` (sh_test) set `REQUIRE_GSA=1` and ran on
   RBE where go-size-analyzer isn't installed (it's `go install`ed only on the workflow
   runner), so it failed closed (Exit 2). gsa isn't a hermetic Bazel tool yet, so drop
   to `REQUIRE_GSA=0`: the size-regression baseline check runs without it, and the
   runner-side `make addon_build_gates` still produces the gsa breakdown.
   add-hermetic-native-addon-builds will pin gsa as a tool target and restore "1".

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
mfreeman451 left a comment

lgtm

lgtm
mfreeman451 deleted branch fix/addon-binary-size-rbe-compat 2026-06-01 18:16:28 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
carverauto/serviceradar!3506
No description provided.