Initial commit -- did OMO do a good job?
Check / check (push) Failing after 1m27s
Check / guardrails (push) Failing after 39s
Check / bundle (push) Successful in 1m4s

This commit is contained in:
2026-09-01 18:29:46 -04:00
commit 20a6c26f7c
179 changed files with 21704 additions and 0 deletions
+100
View File
@@ -0,0 +1,100 @@
# Machine-enforced checks for news-triage, mirroring runway's CI shape.
name: Check
on:
push:
pull_request:
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# The toolchain, its components and the wasm target all come from
# rust-toolchain.toml, so there is one place that says which Rust this is.
- name: Install the pinned toolchain
run: |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs \
| sh -s -- -y --default-toolchain none
echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
- uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: cargo-${{ runner.os }}-${{ hashFiles('Cargo.lock') }}
restore-keys: cargo-${{ runner.os }}-
- name: Formatting
run: cargo fmt --all --check
- name: Clippy
run: cargo clippy --workspace --all-targets -- -D warnings
- name: Tests
run: cargo test --workspace
- name: The frontend still builds for the browser
run: cargo check -p news-web --target wasm32-unknown-unknown
guardrails:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install the pinned toolchain
run: |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs \
| sh -s -- -y --default-toolchain none
echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
- name: No unused dependencies
run: |
cargo install cargo-machete --locked
cargo machete
- name: Licences and advisories
run: |
cargo install cargo-deny --locked
cargo deny check
bundle:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install the pinned toolchain
run: |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs \
| sh -s -- -y --default-toolchain none
echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
- name: Install Trunk
run: |
curl -fsSL https://github.com/trunk-rs/trunk/releases/download/v0.21.14/trunk-x86_64-unknown-linux-gnu.tar.gz \
| tar -xzC /usr/local/bin trunk
- run: npm ci
- name: Build the frontend
working-directory: crates/news-web
run: trunk build --release
# Printed on every run and enforced, because a bundle grows one
# convenient dependency at a time and nobody notices until it is 2.5 MB.
# That was v1's. This budget is comfortably above today's and well below
# that, so it is a ratchet rather than a rubber stamp.
- name: WASM bundle size
run: |
wasm=$(find crates/news-web/dist -name '*.wasm' -print -quit)
size=$(stat -c %s "$wasm")
budget=1800000
echo "$wasm is $size bytes (budget $budget, v1 shipped 2500000)"
if [ "$size" -gt "$budget" ]; then
echo "over budget by $((size - budget)) bytes" >&2
exit 1
fi