ExfilGuardian
CI/CD

Quality Gates

Required and optional checks before merge

Required Checks (Before Merge)

These checks must pass on every PR targeting Trunk:

CheckCommandBlocks PR
Rust formattingcargo fmt --all -- --checkYes
Rust lintingcargo clippy -p exfil-analysis -p exfil-server -p exfil-certs-gen -- -D warningsYes
Analysis + Server testscargo test -p exfil-analysis -p exfil-serverYes
Agent + Server tests (Windows)cargo test -p exfil-server -p exfil-agent (Windows)Yes
Analysis + Server buildcargo build -p exfil-analysis -p exfil-server -p exfil-certs-genYes
Frontend lintbun run checkYes
Frontend typesbun run typecheckYes
Frontend buildbun run buildYes

Optional Checks

CheckCommandPurpose
Benchmarkscargo bench --workspacePerformance regression tracking
Security auditcargo auditDependency vulnerability scan
Docs buildcd docs-site && bun run buildDocumentation integrity

Git Hooks

Set up a pre-commit hook to catch issues locally:

# .git/hooks/pre-commit
#!/bin/bash
set -e

echo "Running pre-commit checks..."

# Rust
cargo fmt --all -- --check
cargo clippy --workspace -- -D warnings

# Frontend
cd desktop && bun run check && bun run typecheck

Make it executable:

chmod +x .git/hooks/pre-commit

Branch Protection

Configure on GitHub under Settings > Branches > Trunk:

  • Require pull request reviews before merging
  • Require status checks to pass (lint-rust, lint-frontend, test-analysis, test-server)
  • Require branches to be up-to-date before merging
  • Do not allow force pushes

On this page