Skip to content

Testing

Testing #207

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: x86_64-unknown-linux-gnu, description: Native }
- { target: wasm32-unknown-unknown, description: Web }
rust:
- { version: stable, atomics: false }
- { version: nightly, atomics: false }
- {
version: nightly,
description: with Atomics,
atomics: true,
component: ",rust-src",
flags: "-Ctarget-feature=+atomics,+bulk-memory",
build-std: true,
}
features:
- { features: "", native: true, description: (`default`) }
- { features: --features serde, native: false, description: (`default` `serde`) }
- { features: --no-default-features --features std, native: false, description: (`std`) }
- { features: --no-default-features, no_std: true, native: true, description: (`no_std`) }
- {
features: "--no-default-features --features msrv,serde",
no_std: true,
description: "(`no_std`, `msrv`, `serde`)",
}
- {
features: "--no-default-features --features msrv,serde",
no_std: true,
nightly: true,
description: "Nightly (`no_std`, `msrv`, `serde`)",
}
exclude:
- target: { target: x86_64-unknown-linux-gnu, description: Native }
rust: { atomics: true }
- target: { target: x86_64-unknown-linux-gnu, description: Native }
features: { native: false }
- rust: { version: nightly, atomics: false }
features: { nightly: false }
- features: { nightly: true }
rust: { version: stable }
- rust: { atomics: true }
features: { nightly: 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 }} ${{ matrix.docsrs.description }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
target:
- { target: x86_64-unknown-linux-gnu, description: Native }
- { target: wasm32-unknown-unknown, description: Web }
rust:
- { version: stable, atomics: false }
- { version: nightly, atomics: false }
- {
version: nightly,
description: with Atomics,
atomics: true,
component: --component rust-src,
flags: "-Ctarget-feature=+atomics,+bulk-memory",
build-std: true,
}
features:
- { features: "", native: true, description: (`default`) }
- { features: --features serde, description: (`default` `serde`) }
- { features: --no-default-features --features std, description: (`std`) }
- { features: --no-default-features, no_std: true, native: true, description: (`no_std`) }
- {
features: "--no-default-features --features msrv,serde",
no_std: true,
description: "(`no_std`, `msrv`, `serde`)",
}
- {
features: "--no-default-features --features msrv,serde",
no_std: true,
nightly: true,
description: "Nightly (`no_std`, `msrv`, `serde`)",
}
docsrs:
- { flags: "", nightly: false }
- { description: (docs.rs), flags: --cfg=docsrs, nightly: true }
exclude:
- docsrs: { flags: "", nightly: false }
rust: { version: nightly, atomics: false }
features: { nightly: false }
- docsrs: { flags: --cfg=docsrs, nightly: true }
rust: { version: stable }
- target: { target: x86_64-unknown-linux-gnu, description: Native }
rust: { atomics: true }
- target: { target: x86_64-unknown-linux-gnu, description: Native }
features: { native: false }
- features: { nightly: true }
rust: { version: stable }
- rust: { atomics: true }
features: { nightly: true }
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Rust
run: |
rustup toolchain install ${{ matrix.rust.version }} --profile minimal ${{ matrix.rust.component }} --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 Rustdoc
env:
RUSTFLAGS: ${{ matrix.rust.flags }}
RUSTDOCFLAGS: -D warnings ${{ matrix.rust.flags }} ${{ matrix.docsrs.flags }}
run:
cargo doc --workspace --no-deps --document-private-items --lib --examples ${{
matrix.features.features }} --target ${{ matrix.target.target }} $BUILD_STD_COMPONENTS
file-permissions:
name: File Permissions
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: List all files that are executable
run: find -type f -executable ! -path './.git/*'
- name: Fail if any executable files were found
run: find -type f -executable ! -path './.git/*' -exec false {} +