Tests #37
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Main tests | |
| on: | |
| push: | |
| branches: [ master, '0.[0-9]+' ] | |
| paths-ignore: | |
| - "**.md" | |
| - "benches/**" | |
| pull_request: | |
| branches: [ master, '0.[0-9]+' ] | |
| paths-ignore: | |
| - "**.md" | |
| - "benches/**" | |
| schedule: | |
| - cron: '0 0 * * SUN' | |
| permissions: | |
| contents: read # to fetch code (actions/checkout) | |
| jobs: | |
| clippy-fmt: | |
| name: Check Clippy and rustfmt | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: stable | |
| components: clippy, rustfmt | |
| - name: Check Clippy | |
| run: cargo clippy --workspace -- -D warnings | |
| - name: Check rustfmt | |
| run: cargo fmt --all -- --check | |
| check-doc: | |
| name: Check doc | |
| runs-on: ubuntu-latest | |
| env: | |
| RUSTDOCFLAGS: "-Dwarnings --cfg docsrs -Zunstable-options --generate-link-to-definition" | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Install toolchain | |
| uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: nightly | |
| - name: rand_core | |
| run: cargo doc --all-features --no-deps | |
| test: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os: ubuntu-latest | |
| target: x86_64-unknown-linux-gnu | |
| toolchain: stable | |
| - os: macos-latest | |
| target: x86_64-apple-darwin | |
| toolchain: stable | |
| # TODO: also aarch64 / M1 | |
| - os: windows-latest | |
| target: x86_64-pc-windows-gnu | |
| toolchain: stable | |
| - os: windows-latest | |
| target: x86_64-pc-windows-msvc | |
| toolchain: beta | |
| # Test both windows-gnu and windows-msvc; use beta rust on one | |
| - os: ubuntu-latest | |
| target: x86_64-unknown-linux-gnu | |
| variant: MSRV | |
| toolchain: 1.85.0 | |
| - os: ubuntu-latest | |
| deps: sudo apt-get update ; sudo apt install gcc-multilib | |
| target: i686-unknown-linux-gnu | |
| toolchain: nightly | |
| - os: ubuntu-latest | |
| target: x86_64-unknown-linux-gnu | |
| toolchain: nightly | |
| variant: minimal_versions | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Not MSRV | |
| if: ${{ matrix.variant != 'MSRV' }} | |
| run: cargo generate-lockfile --ignore-rust-version | |
| - name: Install toolchain | |
| uses: dtolnay/rust-toolchain@master | |
| with: | |
| target: ${{ matrix.target }} | |
| toolchain: ${{ matrix.toolchain }} | |
| - run: ${{ matrix.deps }} | |
| - name: Maybe minimal versions | |
| if: ${{ matrix.variant == 'minimal_versions' }} | |
| run: | | |
| cargo generate-lockfile -Z minimal-versions | |
| - name: Test rand_core | |
| run: | | |
| cargo test --target ${{ matrix.target }} --no-default-features | |
| cargo test --target ${{ matrix.target }} --features serde | |
| test-cross: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os: ubuntu-latest | |
| target: powerpc-unknown-linux-gnu | |
| toolchain: stable | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Install toolchain | |
| uses: dtolnay/rust-toolchain@master | |
| with: | |
| target: ${{ matrix.target }} | |
| toolchain: ${{ matrix.toolchain }} | |
| - name: Cache cargo plugins | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.cargo/bin/ | |
| key: ${{ runner.os }}-cargo-plugins | |
| - name: Install cross | |
| run: cargo install cross || true | |
| - name: Test | |
| run: | | |
| # all stable features: | |
| cross test --no-fail-fast --target ${{ matrix.target }} | |
| test-miri: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Install toolchain | |
| run: | | |
| rustup toolchain install nightly --component miri | |
| rustup override set nightly | |
| cargo miri setup | |
| - name: Test rand | |
| run: | | |
| cargo miri test | |
| cargo miri test --features=serde | |
| cargo miri test --no-default-features | |
| test-no-std: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Install toolchain | |
| uses: dtolnay/rust-toolchain@nightly | |
| with: | |
| target: thumbv6m-none-eabi | |
| - name: Build top-level only | |
| run: cargo build --target=thumbv6m-none-eabi --no-default-features | |
| test-ios: | |
| runs-on: macos-latest | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Install toolchain | |
| uses: dtolnay/rust-toolchain@nightly | |
| with: | |
| target: aarch64-apple-ios | |
| - name: Build top-level only | |
| run: cargo build --target=aarch64-apple-ios |