-
Notifications
You must be signed in to change notification settings - Fork 131
129 lines (110 loc) · 3.76 KB
/
test.yml
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
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
pull_request:
push:
branches:
- 'master'
- 'v1.16'
- 'v1.17'
- 'v1.18'
- 'v2.0'
- 'v2.1'
workflow_dispatch:
env:
CARGO_TERM_COLOR: always
jobs:
test:
strategy:
matrix:
os: [ubuntu-20.04, ubuntu-22.04]
runs-on: ["${{ matrix.os }}"]
steps:
- name: Maximize build space
uses: easimon/maximize-build-space@v10
with:
root-reserve-mb: 4096
remove-dotnet: 'true'
remove-android: 'true'
remove-haskell: 'true'
remove-codeql: 'true'
- uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
./target
key: v0001-${{ matrix.os }}-rust-${{ hashFiles('rust-toolchain.toml') }}-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
v0001-${{ matrix.os }}-rust-${{ hashFiles('rust-toolchain.toml') }}
- name: Set rust version
run: |
RUST_VERSION="$(grep -oP 'channel = "\K\d\.\d+\.\d+(?=")' rust-toolchain.toml)"
echo "RUST_STABLE=$RUST_VERSION" | tee -a $GITHUB_ENV
- name: Set env vars
run: |
source ci/env.sh
echo "GEYSER_PLUGIN_NAME=$plugin_name" | tee -a $GITHUB_ENV
echo "GEYSER_PLUGIN_LIB=lib${plugin_lib_name}" | tee -a $GITHUB_ENV
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: nightly
components: rustfmt
- uses: dtolnay/rust-toolchain@stable
with:
targets: wasm32-unknown-unknown
toolchain: ${{ env.RUST_STABLE }}
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y libsasl2-dev protobuf-compiler
- name: cargo tree
run: |
cargo tree
git checkout Cargo.lock
cargo tree --frozen
- name: cargo tree wasm
run: |
cd yellowstone-grpc-client-nodejs/solana-encoding-wasm
cargo tree
git checkout Cargo.lock
cargo tree --frozen
- name: cargo fmt
run: cargo +nightly fmt --all -- --check
- name: cargo fmt wasm
run: |
cd yellowstone-grpc-client-nodejs/solana-encoding-wasm
cargo +nightly fmt --all -- --check
- name: cargo deny check advisories
uses: EmbarkStudios/cargo-deny-action@v1
with:
command: check advisories
- name: cargo deny check advisories wasm
uses: EmbarkStudios/cargo-deny-action@v1
with:
command: check advisories
manifest-path: ./yellowstone-grpc-client-nodejs/solana-encoding-wasm/Cargo.toml
- name: cargo clippy
run: cargo clippy --workspace --all-targets
- name: cargo clippy wasm
run: |
cd yellowstone-grpc-client-nodejs/solana-encoding-wasm
cargo clippy --target wasm32-unknown-unknown --all-targets
- name: check features in `client`
run: cargo check -p yellowstone-grpc-client --all-targets
- name: check features in `client-simple`
run: cargo check -p yellowstone-grpc-client-simple --all-targets
- name: check features in `geyser`
run: cargo check -p yellowstone-grpc-geyser --all-targets
- name: check features in `proto`
run: cargo check -p yellowstone-grpc-proto --all-targets
- name: check features in `proto`
run: cargo check -p yellowstone-grpc-proto --all-targets --all-features
- name: cargo test
run: cargo test --all-features
- name: Build
run: ./ci/cargo-build-test.sh