rand_dev 0.2.0

Reproducible randomness source for tests
Documentation
name: Rust

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

env:
  CARGO_TERM_COLOR: always
  CARGO_NET_GIT_FETCH_WITH_CLI: true
  RUSTFLAGS: -D warnings

jobs:
  check:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - uses: Swatinem/rust-cache@v2
      with:
        cache-on-failure: "true"
    - name: Check
      run: cargo check
  check-with-rand-v09:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - uses: Swatinem/rust-cache@v2
      with:
        cache-on-failure: "true"
    - name: Check with rand v0.9
      run: cargo check --features rand-v09
  tests:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - uses: Swatinem/rust-cache@v2
      with:
        cache-on-failure: "true"
    - name: Run tests
      run: cargo test
  check-example:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - uses: Swatinem/rust-cache@v2
      with:
        cache-on-failure: "true"
    - name: Check example
      # note: if ran `cargo test`, it intentionally fails with 1/10 probability
      run: (cd examples/simple_usage; cargo check --tests)
  fmt:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: Check formatting
      run: cargo fmt --all -- --check
  clippy:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - uses: Swatinem/rust-cache@v2
      with:
        cache-on-failure: "true"
    - name: Run clippy
      run: cargo clippy -- -D clippy::all