name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
check:
name: Lint and Format
runs-on: ubuntu-latest
permissions:
attestations: write
checks: write
contents: read
issues: write
pull-requests: write
security-events: write
statuses: write
strategy:
matrix:
toolchain:
- stable
- nightly
features:
- "delay-loop,timer-isr"
- "std,delay-loop,timer-isr"
steps:
- uses: actions/checkout@v4
- run: rm -f .cargo/config.toml && rm -f rust-toolchain.toml
- uses: actions-rs/toolchain@v1
with:
toolchain: "${{ matrix.toolchain }}"
components: clippy
- uses: actions-rs/clippy-check@v1
with:
args: "--no-default-features --features ${{ matrix.features }} --all-targets"
name: "clippy-check-${{ matrix.toolchain }}-${{ matrix.features }}"
token: ${{ secrets.GITHUB_TOKEN }}
tests:
name: Run Tests
runs-on: ubuntu-latest
strategy:
matrix:
features:
- "delay-loop,timer-isr"
- "std,delay-loop,timer-isr"
steps:
- uses: actions/checkout@v4
- run: rm -f .cargo/config.toml && rm -f rust-toolchain.toml
- uses: actions-rs/toolchain@v1
with:
toolchain: nightly
components: clippy
- run: "cargo test --all-targets --no-default-features --features ${{ matrix.features }} -vv"
build:
name: Build features
runs-on: ubuntu-latest
strategy:
matrix:
toolchain:
- stable
- nightly
features:
- "delay-loop,timer-isr"
- "std,delay-loop,timer-isr"
steps:
- uses: actions/checkout@v4
- run: rm -f .cargo/config.toml && rm -f rust-toolchain.toml
- uses: actions-rs/toolchain@v1
with:
toolchain: "${{ matrix.toolchain }}"
components: clippy
- name: Build features
run: cargo build --no-default-features --features "${{ matrix.features }}" -vv
doc:
name: Build Documentation
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
components: clippy
- name: Build docs with all features
run: cargo doc --features timer-isr,delay-loop -vv