grpcio 0.7.2

The rust language implementation of gRPC, base on the gRPC c core library.
Documentation
# Travis is only used to test ARM64 Linux

dist: focal
sudo: false
language: rust
git:
  submodules: false

rust: stable

env:
  global:
    - RUST_BACKTRACE=1
    # absl deadlock detection performs poorly on arm, so we build it release
    # mode to skip the check. Enabling debug-assertions to get safer test
    # results.
    - RUSTFLAGS="--deny=warnings -C debug-assertions"
    - TEST_BIND=1

addons:
  apt:
    update: true
    packages:
      - libunwind-dev

jobs:
  include:
  - os: linux
    arch: arm64
    before_script:
      - scripts/reset-submodule.cmd
      - export GRPC_VERSION=1.33.1
      - export PATH="$PATH:$HOME/.cache/bin:$HOME/.cargo/bin"
      - sudo apt-get update && sudo apt-get -y install libssl-dev
      - which cmake && cmake --version && openssl version
      - eval "$(gimme stable)"
    script:
      - if [[ $TRAVIS_OS_NAME == "linux" ]] && [[ $TRAVIS_RUST_VERSION == "stable" ]]; then
          rustup component add rustfmt && cargo fmt --all -- --check;
          env TEST_BIND=0 scripts/generate-bindings.sh && git diff --exit-code HEAD;
        fi
      - ./scripts/generate-bindings.sh
      - cargo build --no-default-features
      - cargo build --no-default-features --features protobuf-codec
      - cargo build --no-default-features --features prost-codec
      - cargo build
      - cargo test --release --all
      - cargo test --release --features "openssl-vendored" --all