diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..bb73c25 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,46 @@ +lints: + name: Formatting & Clippy + runs-on: buildjet-32vcpu-ubuntu-2204 + if: "! contains(toJSON(github.event.commits.*.message), '[skip-ci]')" + steps: + - uses: actions/checkout@v3 + with: + submodules: recursive + + - name: rust-cache + uses: buildjet/cache@v3 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + ~/.rustup/ + key: clippy-rust-nightly-2024-02-22-${{ hashFiles('**/Cargo.toml') }} + restore-keys: rust-nightly-2024-02-22- + + - name: Install nightly toolchain + id: rustc-toolchain + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: nightly-2024-02-22 + override: true + components: rustfmt, clippy + + - name: Run cargo fmt + uses: actions-rs/cargo@v1 + with: + command: fmt + args: --all -- --check + env: + CARGO_INCREMENTAL: 1 + + - name: Run cargo clippy + uses: actions-rs/cargo@v1 + with: + command: clippy + args: --all-features --all-targets -- -D warnings -A incomplete-features + env: + CARGO_INCREMENTAL: 1 \ No newline at end of file