quick-xml 0.25.0

High performance xml reader and writer
Documentation
name: Rust

on: [push, pull_request]

jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - name: Check fmt
      run: cargo fmt -- --check

  test:
    strategy:
      matrix:
        platform: [ubuntu-latest, windows-latest]

    runs-on: ${{ matrix.platform }}

    # Set variable to enable coverage
    env:
      RUSTFLAGS: -C instrument-coverage

    steps:
    - uses: actions/checkout@v3
    - name: Install coverage reporter (llvm-tools-preview)
      if: runner.os == 'Linux'
      run: rustup component add llvm-tools-preview
    - name: Install coverage reporter (grcov)
      if: runner.os == 'Linux'
      run: cargo install grcov

    - name: Build
      run: cargo build
    - name: Build benchmarks
      run: cargo bench --no-run
    - name: Build benchmarks (compare)
      working-directory: compare
      run: cargo bench --no-run
    - name: Run tests + benchmarks
      run: cargo test --all-features --benches --tests

    - name: Run tests (no features)
      env:
        LLVM_PROFILE_FILE: coverage/no-features-%p-%m.profraw
      run: cargo test --no-default-features
    - name: Run tests (serialize)
      env:
        LLVM_PROFILE_FILE: coverage/serialize-%p-%m.profraw
      run: cargo test --features serialize
    - name: Run tests (serialize+encoding)
      env:
        LLVM_PROFILE_FILE: coverage/serialize-encoding-%p-%m.profraw
      run: cargo test --features serialize,encoding
    - name: Run tests (serialize+escape-html)
      env:
        LLVM_PROFILE_FILE: coverage/serialize-escape-html-%p-%m.profraw
      run: cargo test --features serialize,escape-html
    - name: Run tests (all features)
      env:
        LLVM_PROFILE_FILE: coverage/all-features-%p-%m.profraw
      run: cargo test --all-features
    - name: Prepare coverage information for upload
      if: runner.os == 'Linux'
      run: |

        grcov ./coverage \
              -s . \
              --binary-path ./target/debug/ \
              --branch \
              --ignore-not-existing \
              --ignore 'tests/*' \
              -o ./coverage.lcov
    - name: Upload coverage to codecov.io
      if: runner.os == 'Linux'
      uses: codecov/codecov-action@v2
      with:
        files: ./coverage.lcov
        flags: unittests
        verbose: true
      continue-on-error: true