fmt #639
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: Rust | |
| on: | |
| push: | |
| branches: ["main"] | |
| pull_request: | |
| branches: ["main"] | |
| env: | |
| CARGO_TERM_COLOR: always | |
| jobs: | |
| lint: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Check formatting | |
| run: cargo fmt -- --check | |
| - name: Clippy (default) | |
| run: cargo clippy -- -D warnings | |
| - name: Clippy (no default features) | |
| run: cargo clippy --no-default-features --features derive -- -D warnings | |
| - name: Clippy (all features) | |
| run: cargo clippy --all-features -- -D warnings | |
| build: | |
| runs-on: ubuntu-latest | |
| needs: lint | |
| strategy: | |
| matrix: | |
| rust: | |
| - 1.85.0 | |
| - stable | |
| - beta | |
| - nightly | |
| features: | |
| - "" | |
| - "--no-default-features --features 'derive'" | |
| - "--all-features" | |
| steps: | |
| - name: Install rust (${{ matrix.rust }}) | |
| uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: ${{ matrix.rust }} | |
| - uses: actions/checkout@v6 | |
| - name: Build | |
| run: cargo build ${{ matrix.features }} --verbose | |
| - name: Run tests excluding trybuild tests | |
| run: cargo test ${{ matrix.features }} --verbose -- --skip fail | |
| - name: Run examples | |
| working-directory: ./epserde | |
| run: for example in examples/*.rs ; do cargo run --example "$(basename "${example%.rs}")" ; done | |
| miri: | |
| runs-on: ubuntu-latest | |
| needs: lint | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Install nightly with Miri | |
| uses: dtolnay/rust-toolchain@nightly | |
| with: | |
| components: miri | |
| - name: Run Miri tests | |
| run: MIRIFLAGS="-Zmiri-disable-isolation -Zmiri-tree-borrows" cargo +nightly miri test --no-default-features --features std,derive | |
| coverage: | |
| needs: build | |
| name: coverage | |
| runs-on: ubuntu-latest | |
| container: | |
| image: xd009642/tarpaulin:develop-nightly | |
| options: --security-opt seccomp=unconfined | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v6 | |
| - name: Generate code coverage | |
| run: | | |
| cargo +nightly tarpaulin --verbose --engine llvm --all-features --workspace --out Lcov -- --skip fail | |
| - name: Coveralls | |
| uses: coverallsapp/github-action@v2 | |
| with: | |
| github-token: ${{ secrets.GITHUB_TOKEN }} | |
| path-to-lcov: "lcov.info" | |
| build-i686: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Install 32-bit support | |
| run: sudo apt-get update && sudo apt-get install -y gcc-multilib | |
| - name: Add i686 target | |
| run: rustup target add i686-unknown-linux-gnu | |
| - name: Build (32-bit) | |
| run: cargo build --target i686-unknown-linux-gnu | |
| - name: Test (32-bit) | |
| run: cargo test --target i686-unknown-linux-gnu |