Avoid type confusion by using closures during encoding #734
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: | |
pull_request: {} | |
push: | |
branches: | |
- main | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
needs: each_package | |
strategy: | |
fail-fast: false | |
matrix: | |
rust: ['1.76', stable] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: ${{matrix.rust}} | |
- run: cargo build --workspace --exclude tools --exclude musli-tests | |
if: matrix.rust != 'stable' | |
- run: cargo build --workspace --exclude no-std-examples --all-targets | |
if: matrix.rust == 'stable' | |
- run: cargo test --workspace --exclude no-std-examples --all-targets --features test | |
if: matrix.rust == 'stable' | |
- run: cargo test --workspace --exclude no-std-examples --doc | |
if: matrix.rust == 'stable' | |
no_std: | |
runs-on: windows-latest | |
needs: each_package | |
strategy: | |
fail-fast: false | |
matrix: | |
example: ['json'] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@nightly | |
- run: cargo build | |
- run: cargo +nightly run -p no-std-examples --example no-std-${{matrix.example}} | |
fuzz: | |
needs: [test, each_package, recursive] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
- run: cargo run --release -p tests --features test --bin fuzz | |
- run: cargo run --release -p tests --features test --bin fuzz -- --random | |
miri: | |
needs: [test, each_package, recursive] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@nightly | |
with: | |
components: miri | |
- run: cargo miri test --workspace --exclude no-std-examples --features test | |
- run: cargo miri run -p tests --features test --bin fuzz | |
- run: cargo miri run -p tests --features test --bin fuzz -- --random | |
each_package: | |
needs: [rustfmt, clippy] | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
package: [musli, musli-allocator, musli-common, musli-storage, musli-descriptive, musli-wire, musli-json, musli-value] | |
env: | |
RUSTFLAGS: -D warnings | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
- run: cargo build -p ${{matrix.package}} --no-default-features | |
- run: cargo build -p ${{matrix.package}} --no-default-features --features alloc | |
- run: cargo build -p ${{matrix.package}} --no-default-features --features std | |
- run: cargo build -p ${{matrix.package}} --no-default-features --features simdutf8 | |
if: matrix.package == 'musli-storage' || matrix.package == 'musli-wire' || matrix.package == 'musli-descriptive' || matrix.package == 'musli-json' | |
- run: cargo build -p ${{matrix.package}} --no-default-features --features parse-full | |
if: matrix.package == 'musli-json' | |
recursive: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
- run: cargo build --release -p tests --test recursive_models --features test | |
clippy: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@1.76 | |
with: | |
components: clippy | |
- run: cargo clippy --workspace --exclude no-std-examples --all-targets --features test -- -D warnings | |
rustfmt: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
with: | |
components: rustfmt | |
- run: cargo fmt --check --all | |
docs: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@nightly | |
- uses: Swatinem/rust-cache@v2 | |
- run: cargo doc --lib --no-deps --all-features --document-private-items | |
env: | |
RUSTFLAGS: --cfg doc_cfg | |
RUSTDOCFLAGS: --cfg doc_cfg -Dwarnings |