blob: f25093f45531c7dc700a47c4c301082ac33e6c1c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
|
name: CI
on:
pull_request:
push:
branches:
- master
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
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 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:
- host: ARM64
profile: --release
suffix: -Arm64
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 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:
- host: ARM64
profile: --release
suffix: -Arm64
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: 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 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 cargo && cargo version && clang --version && openssl version
- run: cargo xtask submodule
- 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 cargo && cargo version && clang --version && openssl version
- run: cargo xtask submodule
- 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'
RUSTFLAGS: ""
steps:
- uses: actions/checkout@v2
- run: choco install -y llvm
- run: refreshenv
- run: go version ; cargo version ; cmake --version
- run: cargo xtask submodule
- run: cargo build
- run: cargo test --all
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
|