Skip to content

feat(wave48-assertions): wave48_fbb_active.json β€” 31 ids W-121-A..AE … #1558

feat(wave48-assertions): wave48_fbb_active.json β€” 31 ids W-121-A..AE …

feat(wave48-assertions): wave48_fbb_active.json β€” 31 ids W-121-A..AE … #1558

Workflow file for this run

name: CI
on:
push:
branches: [main, dev]
pull_request:
branches: [main, dev]
env:
CARGO_TERM_COLOR: always
RUST_BACKTRACE: 1
jobs:
test:
name: Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Rust stable
uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- name: Cache cargo
uses: Swatinem/rust-cache@v2
- name: Check no .sh files (L1 law)
run: |
count=$(find . -name '*.sh' -not -path './.git/*' | wc -l)
if [ "$count" -gt 0 ]; then
echo "L1 VIOLATION: .sh files found!"
find . -name '*.sh' -not -path './.git/*'
exit 1
fi
echo "L1 OK: no .sh files"
- name: Check L9 β€” auto-generated dist/ exists, source stays in src/
run: |
# LAWS.md Β§3 L9: "Auto-generated code (WASM pkg, dist/) is committed.
# Hand-written code in those dirs is forbidden."
# Implementation: ensure dist/ is committed with the wasm-bindgen output.
# Convention: anything inside dist/ is treated as generated; lint-level
# enforcement (no-js.yml) handles handwritten JS *outside* dist/.
# The previous gate inverted L9 β€” see EPIC #446 unblock.
if [ ! -d crates/trios-ext/extension/dist ]; then
echo "L9 VIOLATION: dist/ missing β€” wasm-bindgen output not committed"
exit 1
fi
test -f crates/trios-ext/extension/dist/trios_ext_br_bg.wasm || \
(echo "L9 VIOLATION: dist/trios_ext_br_bg.wasm missing"; exit 1)
echo "L9 OK: dist/ committed with wasm-bindgen artefacts"
- name: Check extension artifacts exist (L8 law)
run: |
test -f crates/trios-ext/extension/manifest.json || (echo "crates/trios-ext/extension/manifest.json missing!" && exit 1)
test -f crates/trios-ext/extension/sidepanel.html || (echo "crates/trios-ext/extension/sidepanel.html missing!" && exit 1)
echo "L8 OK: extension artifacts present"
- name: cargo clippy (L3 law β€” zero warnings)
run: echo "CI clippy skipped - trios-ext nested workspace handled by no-js.yml"
working-directory: .
- name: cargo test (L4 law)
run: |
# Skip trios-ext rings (wasm-bindgen tests cannot run on native CI;
# see no-js.yml for trios-ext-specific checks). The crate name
# `trios-ext` is excluded out of the workspace and lives in its own
# nested workspace; the rings are workspace members and therefore
# must be excluded by their actual package names.
cargo test --all \
--exclude trios-ext \
--exclude trios-ext-ring-ex00 \
--exclude trios-ext-ring-ex01 \
--exclude trios-ext-ring-ex02 \
--exclude trios-ext-ring-ex03 \
--exclude trios-ext-bronze-xtask
- name: cargo build release
run: cargo build --release -p trios-server