Skip to content

Implement no_std support #67

Implement no_std support

Implement no_std support #67

Workflow file for this run

name: Lint
on:
push:
branches: ["main"]
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.ref_name }}
cancel-in-progress: true
env:
CARGO_TERM_COLOR: always
jobs:
clippy:
name:
Clippy ${{ matrix.target.description }} ${{ matrix.rust.description }} ${{
matrix.features.description }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
target:
- { target: wasm32-unknown-unknown, description: Wasm }
rust:
- { version: stable }
- {
version: nightly,
description: with Atomics,
component: ",rust-src",
flags: "-Ctarget-feature=+atomics,+bulk-memory",
build-std: true,
}
features:
- { features: "" }
- { features: --features serde, description: (serde) }
- { features: --no-default-features, no_std: true, description: (`no_std`) }
- {
features: --no-default-features --features serde,
no_std: true,
description: (`no_std`,
serde),
}
include:
- target: { target: x86_64-unknown-linux-gnu, description: Native }
rust: { version: stable }
- target: { target: wasm32v1-none, description: Wasm v1 }
rust: { version: nightly }
- target: { target: wasm32v1-none, description: Wasm v1 }
rust:
{
version: nightly,
description: with Atomics,
component: ",rust-src",
flags: "-Ctarget-feature=+atomics,+bulk-memory",
build-std: true,
}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Rust
run: |
rustup toolchain install ${{ matrix.rust.version }} --profile minimal --component clippy${{ matrix.rust.component }} --allow-downgrade --target ${{ matrix.target.target }}
rustup default ${{ matrix.rust.version }}
- name: Set `build-std` components
if: matrix.rust.build-std == true && matrix.features.no_std == false
run: echo "BUILD_STD_COMPONENTS=-Zbuild-std=panic_abort,std" >> $GITHUB_ENV
- name: Set `build-std` `no_std` components
if: matrix.rust.build-std == true && matrix.features.no_std == true
run: echo "BUILD_STD_COMPONENTS=-Zbuild-std=core,alloc" >> $GITHUB_ENV
- name: Run Clippy
env:
RUSTFLAGS: ${{ matrix.rust.flags }}
run:
cargo clippy --workspace --all-targets ${{ matrix.features.features }} --target ${{
matrix.target.target }} $BUILD_STD_COMPONENTS -- -D warnings
rustdoc:
name:
Rustdoc ${{ matrix.target.description }} ${{ matrix.rust.description }} ${{
matrix.features.description }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
target:
- { target: wasm32-unknown-unknown, description: Web }
rust:
- { version: stable }
- {
version: nightly,
description: with Atomics,
component: ",rust-src",
flags: "-Ctarget-feature=+atomics,+bulk-memory",
args: "-Zbuild-std=panic_abort,std",
}
- { version: nightly, description: with docs.rs, flags: "--cfg=docsrs" }
- {
version: nightly,
description: with Atomics & docs.rs,
component: ",rust-src",
flags: "-Ctarget-feature=+atomics,+bulk-memory --cfg=docsrs",
args: "-Zbuild-std=panic_abort,std",
}
features:
- { features: "" }
- { features: --all-features, description: (all features) }
include:
- target: { target: x86_64-unknown-linux-gnu, description: Native }
rust: { version: stable }
features: { features: "" }
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Rust
run: |
rustup toolchain install ${{ matrix.rust.version }} --profile minimal --component clippy${{ matrix.rust.component }} --allow-downgrade --target ${{ matrix.target.target }}
rustup default ${{ matrix.rust.version }}
- name: Run Rustdoc
env:
RUSTDOCFLAGS: -D warnings ${{ matrix.rust.flags }}
run:
cargo doc --no-deps --document-private-items ${{ matrix.features.features }} --target ${{
matrix.target.target }} ${{ matrix.rust.args }}