| 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 |