-
Notifications
You must be signed in to change notification settings - Fork 34
134 lines (132 loc) · 4.27 KB
/
ci.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
130
131
132
133
134
name: Rust
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
fmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install Rust Nightly
run: rustup default nightly
- name: Check Formatting
run: cargo fmt --all -- --check
feature-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install Rust Stable
run: rustup default stable
- name: Install cargo-hack
run: cargo install cargo-hack
- name: Check Feature Matrix
run: cargo hack build --all --all-targets --feature-powerset
test:
name: Test ${{ matrix.rust_version }}/${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
rust_version: ['1.70.0', 'stable', 'nightly']
os: [ubuntu-22.04, ubuntu-24.04, macOS-13, macOS-14, windows-2019, windows-2022]
steps:
- uses: actions/checkout@v3
- name: Install Rust ${{ matrix.rust_version }}
run: rustup default ${{ matrix.rust_version }}
- name: Run Tests
run: cargo test --no-default-features --features=prost -- --test-threads=1
cross-test:
name: Test ${{ matrix.target }}
runs-on: ubuntu-latest
strategy:
matrix:
target:
- aarch64-unknown-linux-gnu
- armv5te-unknown-linux-gnueabi
- arm-unknown-linux-gnueabi
- armv7-unknown-linux-gnueabihf
steps:
- uses: actions/checkout@v3
- name: Ensure Rust up-to-date
run: rustup default stable
- name: Install Cross
run: cargo install cross --git https://github.com/cross-rs/cross
- name: Run Tests
run: cross test --target ${{ matrix.target }} --no-default-features --features=prost -- --test-threads=1
cross-test-mips-mipssel:
name: Test ${{ matrix.target }}
runs-on: ubuntu-latest
strategy:
matrix:
target:
- mips-unknown-linux-gnu
- mipsel-unknown-linux-gnu
steps:
- uses: actions/checkout@v3
- name: Ensure Rust up-to-date
run: rustup default nightly
- name: Install Cross
run: cargo install cross --git https://github.com/cross-rs/cross
- name: Run Tests
run: cross +nightly test --target ${{ matrix.target }} --no-default-features --features=prost -- --test-threads=1
env:
RUSTFLAGS: "-C opt-level=1"
test-wasm-browser:
name: Test ${{ matrix.rust_version }}/${{ matrix.os }} (wasm32-unknown-unknown)
runs-on: ${{ matrix.os }}
strategy:
matrix:
rust_version: ['1.70.0', 'stable', 'nightly']
os: [ubuntu-22.04, ubuntu-24.04, macOS-13, macOS-14, windows-2019, windows-2022]
steps:
- uses: actions/checkout@v3
- name: Install Rust ${{ matrix.rust_version }}
run: rustup default ${{ matrix.rust_version }}
- name: Install wasm32-unknown-unknown target
run: rustup target add wasm32-unknown-unknown
- name: Install wasm-pack
run: cargo install wasm-pack
- name: Run Tests
run: wasm-pack test --node
test-wasi:
name: Test ${{ matrix.rust_version }}/${{ matrix.os }} (wasm32-wasi)
runs-on: ${{ matrix.os }}
strategy:
matrix:
rust_version: ['1.70.0', 'stable', 'nightly']
os: [ubuntu-22.04, ubuntu-24.04, macOS-13, macOS-14, windows-2019, windows-2022]
steps:
- uses: actions/checkout@v3
- name: Install Rust ${{ matrix.rust_version }}
run: rustup default ${{ matrix.rust_version }}
- name: Install wasm32-wasi target
run: rustup target add wasm32-wasi
- name: Install cargo-wasi
run: cargo install cargo-wasi
- name: Install wasmtime
run: curl https://wasmtime.dev/install.sh -sSf | bash
- name: Run Tests
run: cargo wasi test
docs:
runs-on: ubuntu-latest
env:
RUSTDOCFLAGS: -Dwarnings
steps:
- uses: actions/checkout@v3
- name: Install Rust Nightly
run: rustup default nightly
- name: Check Docs
run: cargo doc --all-features --workspace --no-deps
bench:
name: Bench ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macOS-latest]
steps:
- uses: actions/checkout@v3
- name: Install Rust Stable
run: rustup default stable
- name: Run Benchmarks
run: cargo bench -- --output-format bencher