Add a test on targets without a standard library #802
Workflow file for this run
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: CI | |
on: | |
push: | |
branches: [ "main" ] | |
pull_request: | |
branches: [ "main" ] | |
env: | |
CARGO_TERM_COLOR: always | |
jobs: | |
format: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
- name: Format | |
run: cargo fmt --check | |
check: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
- uses: taiki-e/install-action@v2 | |
with: | |
tool: cargo-all-features | |
- name: Check all feature combinations | |
run: cargo check-all-features | |
clippy: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
- name: Run clippy | |
run: cargo clippy --all-features -- -D warnings | |
test: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
- uses: taiki-e/install-action@v2 | |
with: | |
tool: cargo-all-features | |
- name: Test all feature combinations | |
run: cargo test-all-features | |
doc: | |
runs-on: ubuntu-latest | |
env: | |
RUSTFLAGS: -D warnings | |
RUSTDOCFLAGS: --cfg docsrs | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@nightly | |
- name: Generate documentation | |
run: cargo +nightly doc --all-features | |
verify_rust_version: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
- uses: taiki-e/install-action@v2 | |
with: | |
tool: cargo-msrv | |
- name: Verify MSRV | |
run: cargo msrv --output-format minimal verify --features serde,rkyv,zerocopy | |
- name: Verify raised MSRV | |
run: cargo msrv --output-format minimal verify --features fast_test --rust-version 1.84.0 | |
coverage: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
with: | |
components: llvm-tools-preview | |
- name: Install cargo-llvm-cov | |
uses: taiki-e/install-action@cargo-llvm-cov | |
- name: Generate lockfile | |
if: hashFiles('Cargo.lock') == '' | |
run: cargo generate-lockfile | |
- name: Generate coverage reports | |
run: cargo llvm-cov --locked --all-features --lcov --output-path lcov.info | |
- name: Upload coverage reports to Codecov | |
uses: codecov/codecov-action@v4 | |
env: | |
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
with: | |
fail_ci_if_error: true | |
semver-checks: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
- uses: taiki-e/install-action@v2 | |
with: | |
tool: cargo-semver-checks | |
- name: Verify semver compatibility | |
run: cargo semver-checks | |
beta_test: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@beta | |
- uses: taiki-e/install-action@v2 | |
with: | |
tool: cargo-all-features | |
- name: Test the crate on rust beta | |
run: cargo test-all-features | |
bench: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
- name: Compile benchmarks | |
# There are no benchmarks with "nothing" in their name, hence this command only compiles the benchmarks but does not run them. | |
run: cargo bench nothing | |
no_std: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
target: [thumbv7m-none-eabi, aarch64-unknown-none] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
with: | |
target: ${{ matrix.target }} | |
- uses: taiki-e/install-action@v2 | |
with: | |
tools: cargo-all-features | |
- name: Check | |
run: cargo check-all-features--target ${{ matrix.target }} |