121 lines
4.2 KiB
YAML
121 lines
4.2 KiB
YAML
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: cd proto && 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 --features use-bindgen
|
|
- run: cargo build --no-default-features --features "protobuf-codec use-bindgen"
|
|
- run: cargo build --no-default-features --features "prost-codec use-bindgen"
|
|
- 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
|
|
env:
|
|
LIBCLANG_PATH: 'C:\Program Files\LLVM\bin'
|
|
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
|