crates-fmt.yml 1.25 KiB
name: Crates Code Quality
on:
  push:
    branches:
      - "**"
  pull_request:
    paths:
      - 'crates/**'
  workflow_dispatch:
env:
  CARGO_TERM_COLOR: 'always'
jobs:
  lint:
    name: Code Lint
    runs-on: ubuntu-latest
    defaults:
      run:
        working-directory: ./crates
    steps:
      - uses: actions/checkout@v4
      - name: Install Rust toolchain
        env: 
            TOOLCHAIN_VERSION: nightly-2024-02-03
        run: |
          rustup toolchain install $TOOLCHAIN_VERSION --profile minimal
          rustup default $TOOLCHAIN_VERSION
          rustup override set $TOOLCHAIN_VERSION
          rustup component add clippy
      - name: Run clippy
        run: cargo clippy -- -D warnings
  fmt:
    name: Code Format
    runs-on: ubuntu-latest
    defaults:
      run:
        working-directory: ./crates
    steps:
      - uses: actions/checkout@v4
      - name: Install Rust toolchain
        env: 
            TOOLCHAIN_VERSION: nightly-2024-02-03
        run: |
          rustup toolchain install $TOOLCHAIN_VERSION --profile minimal
          rustup default $TOOLCHAIN_VERSION
          rustup override set $TOOLCHAIN_VERSION
          rustup component add rustfmt
      - name: Check formatting
        run: cargo fmt -- --check