updated CI pipeline #34
This file contains hidden or 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] | |
| jobs: | |
| test: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: | |
| - ubuntu-latest | |
| - macos-latest | |
| - windows-latest | |
| rust: | |
| - stable | |
| - beta | |
| - nightly | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: ${{ matrix.rust }} | |
| - run: cargo test --lib | |
| - run: cargo test --test correctness | |
| - run: cargo test --test edge_cases | |
| - run: cargo test --tests --all-features | |
| test-release: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: stable | |
| - run: cargo test --release --lib | |
| - run: cargo test --release --test correctness | |
| - run: cargo test --release --test edge_cases | |
| - run: cargo test --release --doc | |
| clippy: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: stable | |
| components: clippy | |
| - run: cargo clippy --all-targets --all-features -- -D warnings | |
| fmt: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: stable | |
| components: rustfmt | |
| - run: cargo fmt -- --check | |
| doc: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: stable | |
| - run: cargo test --doc | |
| miri: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: nightly | |
| components: miri | |
| # Miri cannot interpret x86 SIMD intrinsics, so the dispatch layer | |
| # forces the scalar backend under cfg(miri). This run validates the | |
| # public API and the scalar reference under interpretation; it skips | |
| # the SSE/AVX2 module-internal tests, which would still attempt to | |
| # call intrinsics directly. | |
| - run: cargo miri test --lib -- --skip simd::sse::tests --skip simd::avx2::tests | |
| # proptest's FileFailurePersistence calls std::env::current_dir(), | |
| # which Miri's default isolation blocks. Skip the prop_* tests. | |
| - run: cargo miri test --test correctness -- --skip prop_ | |
| - run: cargo miri test --test edge_cases | |
| fuzz: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: nightly | |
| - name: Install cargo-fuzz | |
| run: cargo install cargo-fuzz | |
| - name: Run fuzz_roundtrip | |
| run: cargo fuzz run roundtrip -- -max_total_time=300s -timeout=10s | |
| - name: Run fuzz_compress_only | |
| run: cargo fuzz run compress_only -- -max_total_time=300s -timeout=10s | |
| - name: Run fuzz_decompress_only | |
| run: cargo fuzz run decompress_only -- -max_total_time=300s -timeout=10s |