vss-client 0.3.1

Client-side library to interact with Versioned Storage Service (VSS).
Documentation
name: Continuous Integration Checks

on: [ push, pull_request ]

jobs:
  build:
    strategy:
      matrix:
        toolchain: [ stable, beta, 1.63.0 ] # 1.63.0 is current MSRV for vss-client
        include:
          - toolchain: stable
            check-fmt: true
          - toolchain: 1.63.0
            msrv: true
    runs-on: ubuntu-latest
    steps:
      - name: Checkout source code
        uses: actions/checkout@v3
      - name: Install Protobuf compiler (protoc)
        run: sudo apt-get update && sudo apt-get -y install protobuf-compiler
      - name: Install Rust ${{ matrix.toolchain }} toolchain
        run: |
          curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile=minimal --default-toolchain ${{ matrix.toolchain }}
          rustup override set ${{ matrix.toolchain }}
      - name: Pin packages to allow for MSRV
        if: matrix.msrv
        run: |
            cargo update -p proptest --precise "1.2.0" --verbose # proptest 1.3.0 requires rustc 1.64.0
            cargo update -p regex --precise "1.9.6" --verbose # regex 1.10.0 requires rustc 1.65.0
            cargo update -p tokio --precise "1.38.1" --verbose # tokio v1.39.0 requires rustc 1.70 or newer
            cargo update -p tokio-util --precise "0.7.11" --verbose # tokio-util v0.7.12 requires rustc 1.70 or newer
      - name: Build on Rust ${{ matrix.toolchain }}
        run: cargo build --verbose --color always
      - name: Check formatting
        if: matrix.check-fmt
        run: rustup component add rustfmt && cargo fmt --all -- --check
      - name: Test on Rust ${{ matrix.toolchain }}
        run: cargo test
      - name: Cargo check release on Rust ${{ matrix.toolchain }}
        run: cargo check --release
      - name: Cargo check doc on Rust ${{ matrix.toolchain }}
        run: cargo doc --release