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