Skip to content

Misc

Misc #349

Workflow file for this run

name: basic
on:
push:
branches: ["main"]
pull_request:
branches: ["main"]
env:
CARGO_TERM_COLOR: always
jobs:
build:
strategy:
matrix:
toolchain:
- stable
- nightly
profile:
- dev
- release
os:
- ubuntu-latest
- windows-latest
- macos-latest
features:
- ""
- "--no-default-features"
- "--all-features"
runs-on: ${{matrix.os}}
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{matrix.toolchain}}
- name: Show version
run: cargo version
- name: Build
run: cargo build --verbose --profile ${{matrix.profile}} ${{matrix.features}}
- name: Run tests
run: cargo test --verbose --profile ${{matrix.profile}} ${{matrix.features}} -- --nocapture
- name: Run loom tests
env:
RUSTFLAGS: "--cfg loom"
run: cargo test --verbose --profile ${{matrix.profile}} ${{matrix.features}} loom -- --nocapture
fmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
components: rustfmt
- name: Check formatting
run: cargo fmt --all --check
doc:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: Check documentation (all-features)
env:
RUSTDOCFLAGS: -D warnings
run: cargo doc --no-deps --document-private-items --all-features
msrv:
runs-on: ubuntu-latest
env:
rust_version: ""
steps:
- uses: actions/checkout@v4
- name: Get MSRV from Cargo
run: |
rust_version=$(grep rust-version Cargo.toml | cut -d'"' -f2)
echo "rust_version=$rust_version" >> $GITHUB_ENV
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ env.rust_version }}
- name: Build
run: cargo build --verbose --release --all-features
- name: Run tests
run: cargo test --verbose --release --all-features -- --nocapture
minimal-versions:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
- uses: taiki-e/install-action@cargo-hack
- uses: taiki-e/install-action@cargo-minimal-versions
- name: Check with minimal versions
run: cargo minimal-versions check
- name: Check with minimal versions (all-features)
run: cargo minimal-versions check --all-features
- name: Check with minimal versions (serde only)
run: cargo minimal-versions check --no-default-features -F serde
no_std:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: taiki-e/install-action@cargo-binstall
- name: Install cargo-nono
run: cargo binstall -y cargo-nono
- name: Check no_std compatibility
run: cargo nono
semver-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Check semver
uses: obi1kenobi/cargo-semver-checks-action@v2