name: CI on: push: branches: [ main, master ] pull_request: branches: [ main, master ] permissions: contents: read jobs: build: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up Rust uses: dtolnay/rust-toolchain@stable - name: Build project run: cargo build --all-features test: runs-on: ubuntu-latest needs: build steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up Rust uses: dtolnay/rust-toolchain@stable - name: Run tests run: cargo test --all-features lint: runs-on: ubuntu-latest needs: build steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up Rust uses: dtolnay/rust-toolchain@stable with: components: rustfmt, clippy - name: Check formatting run: cargo fmt --check --all-features - name: Run clippy run: cargo clippy --all-features -- -D warnings