Skip to content

Support byte-swapping enums #1212

Support byte-swapping enums

Support byte-swapping enums #1212

Workflow file for this run

name: CI
on:
pull_request: {}
push:
branches:
- main
schedule:
- cron: '55 16 * * 6'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
test:
runs-on: ubuntu-latest
needs: features
strategy:
fail-fast: false
matrix:
rust: ['1.78', stable]
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{matrix.rust}}
- run: cargo build -p musli --features test
if: matrix.rust != 'stable'
- run: cargo build --all-targets --features test
if: matrix.rust == 'stable'
- run: cargo test --all-targets --features test
if: matrix.rust == 'stable'
- run: cargo test --doc --features test
if: matrix.rust == 'stable'
loom:
runs-on: ubuntu-latest
needs: features
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- run: cargo test -p musli --release -- tests::loom
env:
RUSTFLAGS: --cfg loom
tests_clippy:
runs-on: ubuntu-latest
needs: features
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- run: cargo run -p tools -- clippy -- -D warnings
no_std:
runs-on: ${{matrix.os}}
needs: features
strategy:
fail-fast: false
matrix:
os: ['windows-latest', 'ubuntu-latest']
example: ['json', 'serde']
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
- run: cargo +nightly run -p no-std --example ${{matrix.example}}
nightly:
runs-on: ubuntu-latest
env:
RUSTFLAGS: -D warnings --cfg musli_nightly
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
with:
components: miri
- uses: Swatinem/rust-cache@v2
- run: cargo build --all-features
- run: cargo build --tests --all-features
fuzz:
needs: [test, loom, tests_clippy, features, 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, tests_clippy, features, recursive]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
with:
components: miri
- run: cargo miri test --features test
- run: cargo miri run -p tests --features test --bin fuzz
- run: cargo miri run -p tests --features test --bin fuzz -- --random
no_default_features:
needs: [rustfmt, clippy]
runs-on: ubuntu-latest
env:
RUSTFLAGS: -D warnings
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- run: cargo build -p musli --no-default-features
features:
needs: [no_default_features, rustfmt, clippy]
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
base:
- storage
- descriptive
- wire
- json
- value
- serde
env:
RUSTFLAGS: -D warnings
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- run: cargo check -p musli --no-default-features --features ${{matrix.base}}
- run: cargo check -p musli --no-default-features --features ${{matrix.base}},alloc
- run: cargo check -p musli --no-default-features --features ${{matrix.base}},std
- run: cargo check -p musli --no-default-features --features ${{matrix.base}},simdutf8
- run: cargo check -p musli --no-default-features --features ${{matrix.base}},parse-full
recursive:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- run: cargo build --release -p musli --test recursive_models
clippy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- run: cargo clippy --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 --features test --lib --no-deps --document-private-items
env:
RUSTFLAGS: --cfg doc_cfg
RUSTDOCFLAGS: --cfg doc_cfg -D warnings