random-access-disk 3.0.1

Continuously read and write to disk, using random offsets and lengths
Documentation
name: 'CI'
on:
  pull_request:
  push:
    branches:
      - master

env:
  RUST_BACKTRACE: 1
  CARGO_TERM_COLOR: always

jobs:
  ci-pass:
    name: CI is green
    runs-on: ubuntu-latest
    needs:
      - test-linux
      - test-windows
      - test-macos
      - build-extra
      - lint
    steps:
      - run: exit 0

  test-linux:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v3
    - uses: dtolnay/rust-toolchain@stable
      with:
        components: rustfmt
    - name: Run tests
      run: |
        cargo check --no-default-features --features tokio
        cargo check --no-default-features --features tokio,sparse
        cargo check --no-default-features --features async-std
        cargo check --no-default-features --features async-std,sparse
        cargo test --no-default-features --features tokio
        cargo test --no-default-features --features tokio,sparse
        cargo test --no-default-features --features async-std
        cargo test --no-default-features --features async-std,sparse

  test-windows:
    runs-on: windows-latest

    steps:
      - uses: actions/checkout@v3
      - uses: dtolnay/rust-toolchain@stable
        with:
          components: rustfmt
      - name: Run tests
        run: |
          cargo check --no-default-features --features tokio
          cargo check --no-default-features --features tokio,sparse
          cargo check --no-default-features --features async-std
          cargo check --no-default-features --features async-std,sparse
          cargo test --no-default-features --features tokio
          cargo test --no-default-features --features tokio,sparse
          cargo test --no-default-features --features async-std
          cargo test --no-default-features --features async-std,sparse

  test-macos:
    runs-on: macos-latest

    steps:
      - uses: actions/checkout@v3
      - uses: dtolnay/rust-toolchain@stable
        with:
          components: rustfmt
      - name: Run tests
        run: |
          cargo check --no-default-features --features tokio
          cargo check --no-default-features --features tokio,sparse
          cargo check --no-default-features --features async-std
          cargo check --no-default-features --features async-std,sparse
          cargo test --no-default-features --features tokio
          cargo test --no-default-features --features tokio,sparse
          cargo test --no-default-features --features async-std
          cargo test --no-default-features --features async-std,sparse

  build-extra:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3
      - uses: dtolnay/rust-toolchain@stable
      - name: Build benches
        run: |
          cargo build --benches --no-default-features --features tokio
          cargo build --benches --no-default-features --features async-std
      - name: Build release
        run: |
          cargo build --release --no-default-features --features tokio
          cargo build --release --no-default-features --features tokio,sparse
          cargo build --release --no-default-features --features async-std
          cargo build --release --no-default-features --features async-std,sparse

  lint:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v3
    - uses: dtolnay/rust-toolchain@stable
      with:
        components: rustfmt, clippy
    - uses: actions-rs/clippy-check@v1
      with:
        token: ${{ secrets.GITHUB_TOKEN }}
    - name: Format check
      run: |
        cargo fmt -- --check