CI #2025
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
pull_request: | |
push: | |
branches: | |
- master | |
- v0.* | |
schedule: | |
- cron: '0 22 * * *' | |
env: | |
RUST_BACKTRACE: 1 | |
# Some of the bindgen tests generate "deref-nullptr" warnings, see https://github.com/rust-lang/rust-bindgen/issues/1651 | |
RUSTFLAGS: "--deny=warnings --allow deref-nullptr" | |
TEST_BIND: 1 | |
GRPC_VERBOSITY: "info" | |
jobs: | |
Linux-Format: | |
name: Linux-Format | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- run: which cargo && cargo version && clang --version && openssl version && which cmake && cmake --version | |
- run: cargo xtask submodule | |
- 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: cargo xtask clang-lint && git diff-index --quiet HEAD | |
Linux-Stable: | |
strategy: | |
matrix: | |
include: | |
- host: ubuntu-latest | |
profile: | |
suffix: | |
name: Linux-Stable${{ matrix.suffix }} | |
runs-on: ${{ matrix.host }} | |
steps: | |
- uses: actions/checkout@v2 | |
- run: sudo apt install -y protobuf-compiler | |
- run: which cargo && cargo version && clang --version && openssl version | |
- run: cargo xtask submodule | |
- run: env TEST_BIND=0 cargo xtask bindgen && git diff --exit-code HEAD | |
- run: cargo xtask codegen && git diff --exit-code HEAD; | |
- run: cargo xtask bindgen | |
- run: cargo build --no-default-features | |
- run: cargo build --no-default-features --features protobuf-codec | |
- run: cargo build --no-default-features --features protobufv3-codec | |
- run: cargo build --no-default-features --features prost-codec | |
- run: cd proto && cargo build --no-default-features --features prost-codec | |
- run: cargo build | |
- run: cargo test --all ${{ matrix.profile }} | |
Linux-Stable-openssl: | |
strategy: | |
matrix: | |
include: | |
- host: ubuntu-latest | |
profile: | |
suffix: | |
name: Linux-Stable-openssl${{ matrix.suffix }} | |
runs-on: ${{ matrix.host }} | |
steps: | |
- uses: actions/checkout@v2 | |
- run: which cargo && cargo version && clang --version && openssl version | |
- run: cargo xtask submodule | |
- run: cargo test --features "openssl-vendored" --all ${{ matrix.profile }} | |
- run: cargo clean | |
- run: cargo test --features "openssl" --all ${{ matrix.profile }} | |
Linux-Nightly: | |
name: Linux-Nightly | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- run: rustup default nightly | |
- run: sudo ln -s /usr/bin/llvm-symbolizer-14 /usr/bin/llvm-symbolizer | |
- run: which cargo && cargo version && clang --version && openssl version | |
- run: cargo xtask submodule | |
- run: cargo build --no-default-features | |
- run: cargo build --no-default-features --features protobuf-codec | |
- run: cargo build --no-default-features --features protobufv3-codec | |
- run: cargo build --no-default-features --features prost-codec | |
- run: cargo build | |
- run: cargo test --all | |
# See https://github.com/grpc/grpc/pull/31167 | |
- run: RUSTFLAGS="-Z sanitizer=address" ASAN_OPTIONS=suppressions=`pwd`/.github/workflows/31167.supp cargo test --all --target x86_64-unknown-linux-gnu | |
- run: cargo test --features "nightly" | |
Mac: | |
name: Mac | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- run: which cargo && cargo version && clang --version && openssl version | |
- run: cargo xtask submodule | |
- run: env TEST_BIND=0 cargo xtask bindgen && git diff --exit-code HEAD | |
- run: cargo xtask bindgen | |
- run: cargo build --no-default-features | |
- run: cargo build --no-default-features --features "protobuf-codec" | |
- run: cargo build --no-default-features --features "protobufv3-codec" | |
- run: cargo build --no-default-features --features "prost-codec" | |
- run: cargo build | |
- run: cargo test --all | |
- run: cargo test --features "nightly" | |
Mac-openssl: | |
name: Mac-openssl | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- run: brew update && brew upgrade [email protected] | |
- run: which cargo && cargo version && clang --version && openssl version | |
- run: cargo xtask submodule | |
- run: OPENSSL_ROOT_DIR="/usr/local/opt/[email protected]/" cargo test --features "openssl" --all | |
- run: cargo test --features "openssl-vendored" --all | |
Win: | |
name: Windows | |
runs-on: windows-latest | |
env: | |
LIBCLANG_PATH: 'C:\Program Files\LLVM\bin' | |
RUSTFLAGS: "" | |
steps: | |
- uses: actions/checkout@v2 | |
- run: choco install -y llvm | |
- run: Import-Module $env:ChocolateyInstall\helpers\chocolateyProfile.psm1 | |
- run: go version ; cargo version ; cmake --version | |
- run: cargo xtask submodule | |
- run: cargo build | |
- run: cargo test --all | |
- run: cargo test --features "nightly" | |
Pre-Release: | |
name: Pre-Release | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- run: cargo xtask submodule | |
- 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 |