| name: CI |
| |
| on: |
| pull_request: |
| push: |
| branches: |
| - master |
| |
| env: |
| RUSTFLAGS: -Dwarnings |
| |
| jobs: |
| build_and_test: |
| name: Build and test |
| runs-on: ${{ matrix.os }} |
| strategy: |
| matrix: |
| os: [ubuntu-latest, macOS-latest, windows-latest] |
| rust: [stable, 1.59.0] |
| |
| steps: |
| - uses: actions/checkout@master |
| |
| - name: Install ${{ matrix.rust }} |
| uses: actions-rs/toolchain@v1 |
| with: |
| toolchain: ${{ matrix.rust }} |
| override: true |
| |
| - name: check |
| uses: actions-rs/cargo@v1 |
| with: |
| command: check |
| args: --all --bins --examples |
| |
| - name: tests |
| uses: actions-rs/cargo@v1 |
| with: |
| command: test |
| args: --all |
| |
| clippy: |
| runs-on: ubuntu-latest |
| |
| steps: |
| - uses: actions/checkout@v2 |
| |
| - uses: actions-rs/toolchain@v1 |
| with: |
| profile: minimal |
| toolchain: nightly |
| override: true |
| components: clippy |
| |
| - name: clippy |
| uses: actions-rs/cargo@v1 |
| with: |
| command: clippy |
| args: --all-targets --all-features -- -D warnings |
| |
| check_fmt_and_docs: |
| name: Checking fmt and docs |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@master |
| - uses: actions-rs/toolchain@v1 |
| with: |
| toolchain: nightly |
| components: rustfmt, clippy |
| override: true |
| |
| - name: fmt |
| run: cargo fmt --all -- --check |
| |
| - name: Docs |
| run: cargo doc |
| |
| fuzz: |
| runs-on: ubuntu-latest |
| |
| steps: |
| - uses: actions/checkout@v2 |
| - uses: actions-rs/toolchain@v1 |
| with: |
| profile: minimal |
| toolchain: nightly |
| override: true |
| |
| - run: cargo install cargo-fuzz |
| - name: compile fuzz |
| run: | |
| cargo fuzz build fuzz_read |