name: CI on: push: branches: [main] pull_request: branches: [main] jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install Rust run: rustup default stable - name: Check formatting run: cargo fmt --check --all - name: Clippy run: cargo clippy --all -- -D warnings build: runs-on: ubuntu-latest needs: lint steps: - uses: actions/checkout@v4 - name: Install Rust run: rustup default stable - name: Build run: cargo build --release test: runs-on: ubuntu-latest needs: build steps: - uses: actions/checkout@v4 - name: Install Rust run: rustup default stable - name: Run tests run: cargo test