async-watch 0.3.1

Async watch channel
Documentation
name: CI

on:
  push:
    paths-ignore:
      - 'README.md'
      - '*.md'
    branches: ["master"]
  pull_request:
    branches: ["master"]

env:
  CARGO_TERM_COLOR: always
  RUSTFLAGS: -Dwarnings
  RUST_BACKTRACE: 1

jobs:
  # Depends on all action sthat are required for a "successful" CI run.
  tests-pass:
    name: all systems go
    runs-on: ubuntu-latest
    needs:
      - test
      - fmt
      - clippy
    steps:
      - run: exit 0

  test:
    name: build and test
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os:
          - windows-latest
          - ubuntu-latest
          - macos-latest
    steps:
      - uses: actions/checkout@v2
      - name: Install Rust
        run: rustup update stable

      # Build
      - name: build
        run: cargo build

      # Test
      - name: test
        run: cargo test --all

  fmt:
    name: fmt
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Install Rust
        run: rustup update stable
      - name: Install rustfmt
        run: rustup component add rustfmt

      # Check fmt
      - name: "rustfmt --check"
        # Workaround for rust-lang/cargo#7732
        run: |
          if ! rustfmt --check --edition 2018 $(find . -name '*.rs' -print); then
            printf "Please run \`rustfmt --edition 2018 \$(find . -name '*.rs' -print)\` to fix rustfmt errors.\n" >&2
            exit 1
          fi

  clippy:
    name: clippy
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Install Rust
        run: rustup update stable
      - name: Install clippy
        run: rustup component add clippy

      # Run clippy
      - name: "clippy --all"
        run: cargo clippy --all --tests