name: ci
on:
push:
pull_request:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: Format
run: cargo fmt --all -- --check
- name: Clippy
run: cargo clippy --all-targets -- -D warnings
- name: Tests
run: cargo test --all -- --nocapture
- name: Enforce allowed dependencies
run: |
set -e
cargo tree --edges normal > tree.txt
disallowed=$(grep -vE "^(flamethrower|power_house|pent_house|\s*[├│└]─|\s*$)" tree.txt || true)
if [ -n "$disallowed" ]; then
echo "Unexpected dependencies found:"
echo "$disallowed"
exit 1
fi