refact!: remove thread local support #16
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: CI | |
on: | |
push: | |
branches: [ main ] | |
pull_request: | |
branches: [ main ] | |
workflow_dispatch: | |
env: | |
CARGO_TERM_COLOR: always | |
jobs: | |
format: | |
name: Format | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Install Rust stable | |
run: rustup toolchain install stable | |
- name: Check format | |
run: cargo fmt -- --check | |
no-std: | |
name: No std | |
runs-on: ubuntu-latest | |
env: | |
NO_STD_TARGET: thumbv7m-none-eabi | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Install Rust stable | |
run: rustup toolchain install stable | |
- name: Add no_std target | |
run: rustup target add ${{ env.NO_STD_TARGET }} | |
- name: Install cargo-hack | |
uses: taiki-e/install-action@cargo-hack | |
- name: Build on no_std environment | |
run: > | |
cargo hack build | |
--target ${{ env.NO_STD_TARGET }} | |
--no-dev-deps | |
--feature-powerset | |
--skip yield,thread_local | |
msrv: | |
name: MSRV | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Install Rust 1.70.0 | |
run: rustup toolchain install 1.70.0 | |
- name: Set Rust 1.70.0 as default | |
run: rustup default 1.70.0 | |
- name: Check MSRV | |
run: cargo check --all-features | |
semver: | |
name: Check semver | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Install Rust stable | |
run: rustup toolchain install stable | |
- name: Check semver violations | |
uses: obi1kenobi/cargo-semver-checks-action@v2 | |
docsrs: | |
name: Build doc | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Install Rust nightly | |
run: rustup toolchain install nightly | |
- name: Set Rust nightly as default | |
run: rustup default nightly | |
- name: Build docs | |
env: | |
RUSTDOCFLAGS: --cfg docsrs -D warnings | |
run: cargo doc --all-features | |
doc: | |
name: Test doc | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Install Rust stable | |
run: rustup toolchain install stable | |
- name: Run doc snippets | |
run: cargo test --doc --all-features | |
examples: | |
name: Examples | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Install Rust stable | |
run: rustup toolchain install stable | |
- name: Run raw example | |
run: cargo run --example raw | |
linter: | |
name: Linter | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Install Rust stable | |
run: rustup toolchain install stable | |
- name: Install cargo-hack | |
uses: taiki-e/install-action@cargo-hack | |
- name: Lint feature powerset | |
env: | |
RUSTFLAGS: -D warnings -D clippy::pedantic -D clippy::nursery | |
run: cargo hack clippy --feature-powerset --no-dev-deps | |
- name: Lint test profile | |
env: | |
RUSTFLAGS: -D warnings -D clippy::pedantic -D clippy::nursery | |
run: cargo hack clippy --profile test --feature-powerset --no-dev-deps | |
- name: Lint loom | |
env: | |
RUSTFLAGS: --cfg loom -D warnings -D clippy::pedantic -D clippy::nursery | |
run: cargo hack clippy --profile test --feature-powerset | |
coverage: | |
name: Coverage | |
runs-on: ubuntu-latest | |
container: | |
image: xd009642/tarpaulin:latest | |
options: --security-opt seccomp=unconfined | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Generate coverage | |
run: > | |
cargo tarpaulin | |
--verbose | |
--engine llvm | |
--all-features | |
--out xml | |
- name: Upload to Codecov | |
uses: codecov/codecov-action@v3 | |
env: | |
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
miri: | |
name: Miri | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Install Rust nightly and Miri | |
# NOTE: not all nightly releases come with Miri | |
run: rustup toolchain install nightly --component miri | |
- name: Set Rust nightly as default | |
run: rustup default nightly | |
# NOTE: Nextest is configure to run Miri against `num-cpus` threads. | |
- name: Install latest nextest release | |
uses: taiki-e/install-action@nextest | |
- name: Miri test | |
run: cargo miri nextest run --all-features | |
loom: | |
name: Loom | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Install Rust stable | |
run: rustup toolchain install stable | |
- name: Loom test | |
env: | |
RUSTFLAGS: --cfg loom | |
run: cargo test --lib --release --all-features |