Skip to content

ci: build all production module .wasm targets via matrix (COW-1066)#27

Open
brunota20 wants to merge 1 commit into
qa/cleanup-cow-1063from
feat/ci-build-all-modules-cow-1066
Open

ci: build all production module .wasm targets via matrix (COW-1066)#27
brunota20 wants to merge 1 commit into
qa/cleanup-cow-1063from
feat/ci-build-all-modules-cow-1066

Conversation

@brunota20

Copy link
Copy Markdown
Collaborator

What does this PR do?

Extends the CI `build-module` job from `cargo build -p example` to a `matrix.module` strategy that builds every production module: example + twap-monitor + ethflow-watcher + price-alert + balance-tracker + stop-loss.

Why

Surfaced by the COW-1063 QA pass. Previously a wasm-side regression in any of the 5 production modules (broken cowprotocol feature flag, alloy version drift, no_std assumption breakage) would ship to upstream review without CI catching it. We log .wasm sizes manually in PR bodies but nothing enforces the build.

Changes

  • `.github/workflows/ci.yml::build-module` -> `matrix.module` with 6 entries.
  • `fail-fast: false` so one broken module does not mask others.
  • New "report wasm size" step prints ` .wasm size: ` so reviewers spot size regressions in the Actions log without manual measurement.
  • Job display name is now per-module: `build twap-monitor (wasm32-wasip2)`, etc.

Breaking changes

None. Existing `example` build still runs.

Testing

  • Local: `cargo build -p --target wasm32-wasip2 --release` clean for all 6 modules.
  • Yaml syntax sane (matrix interpolation pattern matches what dtolnay/rust-toolchain has seen before in this repo).
  • Actual CI run on this PR confirms the matrix expands correctly.

AI assistance disclosure

AI Assistance: this change + description was produced by a Claude Code agent (Claude Opus 4.7 1M context). A human (Bruno) reviewed and is accountable for the result.

Linear: COW-1066.

Previously `build-module` only compiled `-p example`, leaving the 5
production modules (twap-monitor, ethflow-watcher, price-alert,
balance-tracker, stop-loss) without CI coverage on the wasm side.
A wasm-build regression (broken cowprotocol feature flag, alloy
version drift, no_std assumption broken) would ship to upstream
review without CI catching it.

This converts the job to a `matrix.module` strategy listing all 6
modules (example kept for parity) and adds a tiny "report wasm
size" step so reviewers can spot size regressions in the Actions
log. `fail-fast: false` so one broken module does not mask others.

Verified locally:

- example          builds clean
- twap-monitor     builds clean
- ethflow-watcher  builds clean
- price-alert      builds clean
- balance-tracker  builds clean
- stop-loss        builds clean

Linear: COW-1066.
@linear-code

linear-code Bot commented Jun 17, 2026

Copy link
Copy Markdown

COW-1066

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant