zeroclaw/.github/workflows
Alex Gorevski 5c464b0243
ci(release): add hard binary size gate (#631)
Problem: The release workflow warns when binaries exceed 5MB but does
not block the build. Since small binary size is a stated project goal
(release profile uses opt-level="z", LTO, strip, panic=abort), size
regressions can silently ship to users without any enforcement.

Solution: Convert the binary size check to a tiered gate:
- >5MB: emits a GitHub Actions warning (soft target, informational)
- >15MB: emits a GitHub Actions error and fails the build (hard limit)
- Adds a step summary with per-target binary size metrics for
  visibility in the Actions UI.

The 15MB hard limit provides headroom for legitimate growth while
catching catastrophic regressions (e.g., debug symbols not stripped,
accidental fat dependency additions).

Testing: Validated YAML syntax. The shell script logic is
straightforward (stat + arithmetic comparison). The existing

unner.os != 'Windows' guard is preserved.

Ref: zeroclaw-labs/zeroclaw#618 (item 3 — Binary Size Gating)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-17 15:09:14 -05:00
..
auto-response.yml ci(workflows): consolidate policy and rust workflow setup (#564) 2026-02-17 11:35:20 -05:00
ci.yml refactor(ci): extract large inline scripts to scripts/ci/ (#587) 2026-02-17 14:17:00 -05:00
codeql.yml Standardize security workflow and enhance CodeQL analysis (#479) 2026-02-17 00:10:46 -05:00
docker.yml fix(ci): pin Blacksmith GitHub Actions to commit SHAs (#511) 2026-02-17 07:50:07 -05:00
label-policy-sanity.yml ci(workflows): consolidate policy and rust workflow setup (#564) 2026-02-17 11:35:20 -05:00
labeler.yml ci(workflows): consolidate policy and rust workflow setup (#564) 2026-02-17 11:35:20 -05:00
pr-hygiene.yml ci(workflows): consolidate policy and rust workflow setup (#564) 2026-02-17 11:35:20 -05:00
pr-intake-sanity.yml ci(pr-intake): make template/format checks advisory (#595) 2026-02-17 14:02:47 -05:00
release.yml ci(release): add hard binary size gate (#631) 2026-02-17 15:09:14 -05:00
rust-reusable.yml ci(workflows): consolidate policy and rust workflow setup (#564) 2026-02-17 11:35:20 -05:00
security.yml ci(security): pin rustsec audit action and supersede #588 (#592) 2026-02-17 13:39:47 -05:00
stale.yml ci(workflows): consolidate policy and rust workflow setup (#564) 2026-02-17 11:35:20 -05:00
update-notice.yml ci(workflows): consolidate policy and rust workflow setup (#564) 2026-02-17 11:35:20 -05:00
workflow-sanity.yml ci(workflows): split label policy checks from workflow sanity (#559) 2026-02-17 11:26:54 -05:00