Infer output length #25
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: [ master ] | |
pull_request: | |
branches: [ master ] | |
env: | |
# Minimum supported Rust version. | |
msrv: 1.66.0 | |
# Nightly Rust necessary for the no-std job. | |
nightly: nightly-2023-09-09 | |
jobs: | |
build-msrv: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: ${{ env.msrv }} | |
- name: Cache cargo build | |
uses: actions/cache@v3 | |
with: | |
path: target | |
key: ${{ runner.os }}-msrv-cargo-${{ hashFiles('**/Cargo.lock') }} | |
restore-keys: ${{ runner.os }}-msrv-cargo | |
- name: Run tests | |
run: cargo test --workspace --all-targets | |
- name: Run doc tests | |
run: cargo test --workspace --doc | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: stable | |
components: rustfmt, clippy | |
- name: Install cargo-deny | |
uses: baptiste0928/cargo-install@v2 | |
with: | |
crate: cargo-deny | |
version: "^0.14" | |
- name: Cache cargo build | |
uses: actions/cache@v3 | |
with: | |
path: target | |
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
restore-keys: ${{ runner.os }}-cargo | |
- name: Format | |
run: cargo fmt --all -- --check | |
- name: Clippy | |
run: cargo clippy --workspace --all-targets -- -D warnings | |
- name: Check dependencies | |
run: cargo deny check | |
- name: Run tests | |
run: cargo test --workspace --all-targets | |
- name: Run doc tests | |
run: cargo test --workspace --doc | |
# Checks that the crate actually builds without `std`. To do this, | |
# we take a target (`thumbv7m-none-eabi`) that does not have `std` support. | |
build-nostd: | |
needs: | |
- build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: ${{ env.nightly }} | |
targets: thumbv7m-none-eabi | |
- name: Cache cargo build | |
uses: actions/cache@v3 | |
with: | |
path: target | |
key: ${{ runner.os }}-nostd-cargo-${{ hashFiles('**/Cargo.lock') }} | |
restore-keys: ${{ runner.os }}-nostd-cargo | |
- name: Build | |
run: cargo build --lib --target thumbv7m-none-eabi -Z avoid-dev-deps | |
document: | |
if: github.event_name == 'push' | |
needs: | |
- build | |
- build-msrv | |
- build-nostd | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: stable | |
- name: Cache cargo build | |
uses: actions/cache@v3 | |
with: | |
path: target | |
key: ${{ runner.os }}-document-cargo-${{ hashFiles('**/Cargo.lock') }} | |
restore-keys: ${{ runner.os }}-document-cargo | |
- name: Build docs | |
run: | | |
cargo clean --doc && \ | |
cargo rustdoc -p const-decoder -- --cfg docsrs | |
- name: Deploy | |
uses: JamesIves/github-pages-deploy-action@v4 | |
with: | |
branch: gh-pages | |
folder: target/doc | |
single-commit: true |