Skip to content

ci: add the Rust build + test gate - #22

Merged
ralyodio merged 1 commit into
masterfrom
ci/rust-build-test
Aug 29, 2026
Merged

ci: add the Rust build + test gate#22
ralyodio merged 1 commit into
masterfrom
ci/rust-build-test

Conversation

@ralyodio

Copy link
Copy Markdown
Contributor

Adds the missing Rust build/test gate.

CI currently runs only security scanners — CodeQL, ThreatCrush, gitleaks, semgrep, Socket, bun audit. Nothing compiles the workspace or runs a test, so a PR could break every crate in the tree and still show all-green. Both bugs found while implementing CIP-002 (#21) would have sailed through.

What's blocking vs. advisory

build-and-test is the gate:

cargo build --workspace --all-targets --locked
cargo test  --workspace --locked

lint (fmt + clippy) is advisory, deliberately. The tree does not currently satisfy cargo fmt --check, and clippy has pre-existing warnings in c0mpute-net and c0mpute-update. Making either blocking today reddens every PR for reasons unrelated to its diff. Running them now keeps the backlog visible rather than letting it grow silently — clear the tree, delete the continue-on-error lines, and they become real gates. The job summary says exactly that, so whoever hits it knows what to do.

Notes

  • The toolchain version is read out of .mise.toml rather than pinned in the workflow, so CI can't drift from what contributors run locally (DIP-0004). Written in two places, the two would disagree eventually and CI would be testing a compiler nobody uses.
  • --locked so a PR that forgets to commit Cargo.lock fails loudly instead of silently resolving different dependencies than everyone else.
  • concurrency with cancel-in-progress — Rust builds are the most expensive job here and there's no value finishing one for a superseded commit.
  • No path filters: if this is ever made a required check, a filtered job that never runs would block PRs forever. Swatinem/rust-cache keeps it cheap instead.
  • No extra system deps needed — the transcode tests don't shell out to ffmpeg (verified: the suite passes on a machine without it).

Worth merging ahead of #20/#21 so it gates them.

🤖 Generated with Claude Code

https://claude.ai/code/session_01LsQAuvXkmyHTgnvquLHrRx

CI ran only security scanners — CodeQL, ThreatCrush, gitleaks, semgrep, Socket,
bun audit. Nothing compiled the workspace or ran a test, so a PR could break
every crate in the tree and still show all-green.

`build-and-test` is blocking: `cargo build --workspace --all-targets --locked`
then `cargo test --workspace --locked`.

`lint` (fmt + clippy) is advisory for now. The tree does not currently satisfy
`cargo fmt --check`, and clippy has pre-existing warnings in c0mpute-net and
c0mpute-update; making either blocking today would redden every PR for reasons
unrelated to its diff. Running them now keeps the backlog visible instead of
letting it grow silently — clear the tree, drop the `continue-on-error` lines,
and they become real gates.

The toolchain version is read from .mise.toml rather than pinned in the
workflow, so CI cannot drift from what contributors run locally (DIP-0004).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LsQAuvXkmyHTgnvquLHrRx
@github-actions

Copy link
Copy Markdown

ThreatCrush Security Scan

8 finding(s)

HIGH/CRITICAL: 5 | MEDIUM: 3

Severity Rule Location
HIGH sh-remote-script-execution scripts/dev-setup.sh:25
HIGH sh-remote-script-execution scripts/install.sh:159
HIGH sh-remote-script-execution scripts/install.sh:184
HIGH sh-remote-script-execution scripts/install.sh:277
HIGH sh-remote-script-execution scripts/install.sh:294
MEDIUM js-unescaped-html-sink apps/web/src/app/blog/[slug]/page.tsx:53
MEDIUM js-unescaped-html-sink apps/web/src/app/layout.tsx:89
MEDIUM sh-eval-expansion scripts/dev-setup.sh:35

Snippets are redacted; ThreatCrush never prints matched credential material.

@ralyodio
ralyodio merged commit 18ed6fd into master Aug 29, 2026
12 checks passed
@ralyodio
ralyodio deleted the ci/rust-build-test branch August 29, 2026 14:06
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