name: CI

on: [push, pull_request]

jobs:
  build:
    strategy:
      matrix:
        platform: [ubuntu-latest, macos-latest, windows-latest]
    runs-on: ${{ matrix.platform }}
    steps:
      - uses: actions/checkout@v1
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          profile: minimal
          override: true
          components: rustfmt, clippy
      - uses: actions-rs/cargo@v1.0.1
        name: Check format
        with:
          command: fmt
          args: --all -- --check
      - uses: actions-rs/cargo@v1.0.1
        name: Run clippy
        with:
          command: clippy
          args: --all-targets --locked -- -D warnings
      - uses: actions-rs/cargo@v1.0.1
        name: Run clippy (All features)
        with:
          command: clippy
          args: --all-targets --locked --all-features -- -D warnings
      - uses: actions-rs/cargo@v1.0.1
        name: Run tests
        with:
          command: test
