bookkeeper-client 0.2.1

Async rust client for Apache BookKeeper
Documentation
name: CI
on:
  push:
  pull_request:

env:
  RUSTFLAGS: -Dwarnings
  RUST_BACKTRACE: full

jobs:
  fmt:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - uses: Swatinem/rust-cache@v1
    - name: Install latest nightly
      uses: actions-rs/toolchain@v1
      with:
          toolchain: nightly
          override: true
          components: rustfmt
    - name: Check formatting
      run: cargo fmt --all -- --check
  build:
    runs-on: ubuntu-latest
    steps:
    - run: sudo apt install -y protobuf-compiler
    - uses: actions/checkout@v2
    - uses: Swatinem/rust-cache@v1
    - name: Install rust
      uses: actions-rs/toolchain@v1
      with:
          toolchain: stable
          override: true
          # etcd-client needs rustfmt in build
          components: rustfmt
    - name: Build code
      run: cargo build
  test:
    needs: [build]
    runs-on: ubuntu-latest
    env:
      RUST_LOG: debug
    steps:
    - run: sudo apt install -y protobuf-compiler
    - uses: actions/checkout@v2
    - uses: Swatinem/rust-cache@v1
    - name: Install rust
      uses: actions-rs/toolchain@v1
      with:
          toolchain: stable
          override: true
          components: rustfmt
    - name: Test code
      run: cargo test -- --nocapture
  lint:
    needs: [build]
    runs-on: ubuntu-latest
    steps:
    - run: sudo apt install -y protobuf-compiler
    - uses: actions/checkout@v2
    - uses: Swatinem/rust-cache@v1
    - name: Install rust
      uses: actions-rs/toolchain@v1
      with:
          toolchain: stable
          override: true
          components: clippy, rustfmt
    - name: Lint code
      run: cargo clippy --no-deps
  release:
    if: github.event_name == 'push' && github.ref_type == 'tag'
    needs: [build, test, lint]
    runs-on: ubuntu-latest
    steps:
    - run: sudo apt install -y protobuf-compiler
    - uses: actions/checkout@v2
    - uses: Swatinem/rust-cache@v1
    - name: publish crate
      env:
        CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
      run: cargo publish