name: Rust

on:
  pull_request:
    branches:
        - '*'

env:
  CARGO_TERM_COLOR: always

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2
        with:
          submodules: recursive
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: nightly
          profile: minimal
          components: rustfmt
          override: true
      - name: Fmt Check
        run: cargo fmt -- --check
      - name: Prepare Clippy
        run: rustup component add clippy
      - name: Run clippy action to produce annotations
        uses: actions-rs/clippy-check@v1
        with:
          args: --all-targets -- -D warnings
          token: ${{ secrets.GITHUB_TOKEN }}
      - name: Build
        run: cargo build --verbose
      - name: Run tests
        run: cargo test --verbose

