# Based on https://github.com/actions-rs/meta/blob/master/recipes/quickstart.md
#
on: [push, pull_request]

name: CI

jobs:
  check:
    name: Check
    runs-on: ubuntu-latest
    steps:
      - name: Checkout sources
        uses: actions/checkout@v2

      - name: Install stable toolchain
        uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: stable
          override: true

      - name: Run cargo check
        uses: actions-rs/cargo@v1
        continue-on-error: false
        with:
          command: check

  rustfmt:
    name: Rustfmt
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4
      - name: Install Rust toolchain
        uses: actions-rs/toolchain@v1
        with:
          toolchain: 1.85.0
          profile: minimal
          override: true
          components: rustfmt
      - uses: Swatinem/rust-cache@v2
      - name: Check formatting
        uses: actions-rs/cargo@v1
        with:
          command: fmt
          args: --all -- --check

  # clippy:
  #  name: Clippy
  #  runs-on: ubuntu-latest
  #  steps:
  #    - name: Checkout repository
  #      uses: actions/checkout@v4
  #    - name: Install Rust toolchain
  #      uses: actions-rs/toolchain@v1
  #      with:
  #        toolchain: 1.85.0
  #        profile: minimal
  #        override: true
  #        components: clippy
  #    - uses: Swatinem/rust-cache@v2
  #    - name: Clippy check
  #      uses: actions-rs/cargo@v1
  #      with:
  #        command: clippy
  #        args: --all-targets --all-features --workspace -- -D warnings

  test:
    name: Test Suite
    runs-on: ubuntu-latest
    steps:
      - name: Checkout sources
        uses: actions/checkout@v2
        with:
          submodules: recursive

      - name: Install stable toolchain
        uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: stable
          override: true

      - name: Run cargo test
        uses: actions-rs/cargo@v1
        continue-on-error: false
        with:
          command: test
