grpcio 0.7.2

The rust language implementation of gRPC, base on the gRPC c core library.
Documentation
name: CI

on:
  pull_request:
  push:
    branches: 
    - master
  schedule:
  - cron: '0 22 * * *'

env:
  RUST_BACKTRACE: 1
  RUSTFLAGS: "--deny=warnings"
  TEST_BIND: 1

jobs:
  Linux-Format:
    name: Linux-Format
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - run: sudo apt-get install -y clang-tidy-9
    - run: sudo update-alternatives --install /usr/bin/clang-tidy clang-tidy /usr/bin/clang-tidy-9 100
    - run: which go && go version && which cargo && cargo version && clang --version && openssl version && which cmake && cmake --version
    - run: scripts/reset-submodule.cmd
    - run: cargo fmt --all -- --check
    - run: cargo clippy --all -- -D clippy::all && cargo clippy --all --no-default-features --features prost-codec -- -D clippy::all
    - run: scripts/lint-grpc-sys.sh && git diff-index --quiet HEAD

  Linux-Stable:
    name: Linux-Stable
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - run: which go && go version && which cargo && cargo version && clang --version && openssl version
    - run: scripts/reset-submodule.cmd
    - run: env TEST_BIND=0 scripts/generate-bindings.sh && git diff --exit-code HEAD
    - run: scripts/generate-bindings.sh
    - run: cargo build --no-default-features
    - run: cargo build --no-default-features --features protobuf-codec
    - run: cargo build --no-default-features --features prost-codec
    - run: cargo build
    - run: cargo test --all

  Linux-Stable-openssl:
    name: Linux-Stable-openssl
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - run: which go && go version && which cargo && cargo version && clang --version && openssl version
    - run: scripts/reset-submodule.cmd
    - run: cargo test --features "openssl-vendored" --all
    - run: cargo clean
    - run: cargo test --features "openssl" --all

  Linux-Nightly:
    name: Linux-Nightly
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - run: rustup default nightly
    - run: which go && go version && which cargo && cargo version && clang --version && openssl version
    - run: scripts/reset-submodule.cmd
    - run: cargo build --no-default-features
    - run: cargo build --no-default-features --features protobuf-codec
    - run: cargo build --no-default-features --features prost-codec
    - run: cargo build
    - run: cargo test --all
    - run: RUSTFLAGS="-Z sanitizer=address" cargo test --all --target x86_64-unknown-linux-gnu

  Mac:
    name: Mac
    runs-on: macos-latest
    steps:
    - uses: actions/checkout@v2
    - run: which go && go version && which cargo && cargo version && clang --version && openssl version
    - run: scripts/reset-submodule.cmd
    - run: cargo build --no-default-features
    - run: cargo build --no-default-features --features protobuf-codec
    - run: cargo build --no-default-features --features prost-codec
    - run: cargo build
    - run: cargo test --all

  Mac-openssl:
    name: Mac-openssl
    runs-on: macos-latest
    steps:
    - uses: actions/checkout@v2
    - run: brew update && brew upgrade openssl@1.1
    - run: which go && go version && which cargo && cargo version && clang --version && openssl version
    - run: scripts/reset-submodule.cmd
    - run: OPENSSL_ROOT_DIR="/usr/local/opt/openssl@1.1/" cargo test --features "openssl" --all
    - run: cargo test --features "openssl-vendored" --all

  Win:
    name: Windows
    runs-on: windows-latest
    steps:
    - uses: actions/checkout@v2
    - run: choco install -y llvm
    - run: refreshenv
    - run: go version ; cargo version ; cmake --version 
    - run: scripts/reset-submodule.cmd
    - run: cargo build
    - run: cargo test --all
  
  Pre-Release:
    name: Pre-Release
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - run: scripts/reset-submodule.cmd
    - run: cd grpc-sys && cargo publish --dry-run
    - name: Check generated package size
      run: |
        ls -alh target/package/grpcio-sys-*.crate
        test `cat target/package/grpcio-sys-*.crate | wc -c` -le 10485760