name: Rust CI # TODO: The paths need to include all rust projects. Those exist outside the rust directory. on: workflow_dispatch: push: paths: - 'rust/**' pull_request: paths: - 'rust/**' jobs: # Check lints with clippy clippy: name: cargo clippy runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 # Ensure clippy is installed - uses: actions-rust-lang/setup-rust-toolchain@v1 with: components: clippy - name: Clippy Check uses: clechasseur/rs-clippy-check@v4 with: # We do not run clippy on plugins. working-directory: ./rust args: --all-features # Check formatting with rustfmt formatting: name: cargo fmt runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 # Ensure rustfmt is installed - uses: actions-rust-lang/setup-rust-toolchain@v1 with: components: rustfmt - name: Rustfmt Check uses: actions-rust-lang/rustfmt@v1 # Check spelling with typos spelling: name: typos runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Typo Check uses: crate-ci/typos@v1.29.4 with: files: ./rust