MultiDistribution #21
Workflow file for this run
This file contains 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/**" | |
- "distr_test/**" | |
pull_request: | |
branches: [ master, '0.[0-9]+' ] | |
paths-ignore: | |
- "**.md" | |
- "benches/**" | |
- "distr_test/**" | |
permissions: | |
contents: read # to fetch code (actions/checkout) | |
jobs: | |
clippy-fmt: | |
name: Check Clippy and rustfmt | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- 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@v4 | |
- name: Install toolchain | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: nightly | |
- name: rand_distr | |
run: cargo doc --all-features --package rand_distr --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.63.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@v4 | |
- name: MSRV | |
if: ${{ matrix.variant == 'MSRV' }} | |
run: cp Cargo.lock.msrv Cargo.lock | |
- 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: Build rand_distr | |
run: | | |
cargo build --target ${{ matrix.target }} --features=serde | |
cargo build --target ${{ matrix.target }} --no-default-features | |
cargo build --target ${{ matrix.target }} --no-default-features --features=std,std_math | |
- name: Test rand_distr | |
run: | | |
cargo test --target ${{ matrix.target }} --features=serde | |
cargo test --target ${{ matrix.target }} --no-default-features | |
cargo test --target ${{ matrix.target }} --no-default-features --features=std,std_math | |
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@v4 | |
- 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 }} --features=serde |