on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

name: CI

jobs:
  test:
    name: cargo test
    runs-on: ubuntu-latest
    steps:
    - run: sudo apt install libxcb-composite0-dev
    - uses: actions-rs/toolchain@v1
      with:
        profile: minimal
        toolchain: stable
    - uses: actions/checkout@v2
    - uses: actions-rs/cargo@v1
      with:
        command: test
        args: --all-features

  fmt:
    name: cargo fmt
    runs-on: ubuntu-latest
    steps:
    - uses: actions-rs/toolchain@v1
      with:
        profile: minimal
        toolchain: stable
    - run: rustup component add rustfmt
    - uses: actions/checkout@v2
    - run: sudo apt install libxcb-composite0-dev
    - uses: actions-rs/cargo@v1
      with:
        command: fmt
        args: --all -- --check

  clippy:
    name: cargo clippy
    runs-on: ubuntu-latest
    steps:
    - uses: actions-rs/toolchain@v1
      with:
        profile: minimal
        toolchain: stable
    - run: rustup component add clippy
    - run: sudo apt install libxcb-composite0-dev
    - uses: actions/checkout@v2
    - uses: actions-rs/cargo@v1
      with:
        command: clippy
        args: --workspace --all-targets --all-features --  -D warnings -W clippy::all
