-
Notifications
You must be signed in to change notification settings - Fork 37
142 lines (130 loc) · 5.71 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
135
136
137
138
139
140
141
142
name: 'CI'
on:
pull_request:
push:
branches:
- master
env:
RUST_BACKTRACE: 1
CARGO_TERM_COLOR: always
jobs:
ci-pass:
name: CI is green
runs-on: ubuntu-latest
needs:
- test-linux
- test-windows
- test-macos
- build-extra
- lint
steps:
- run: exit 0
test-linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- name: Run tests
run: |
cargo check --no-default-features --features tokio
cargo check --no-default-features --features tokio,sparse
cargo check --no-default-features --features tokio,sparse,cache
cargo check --no-default-features --features async-std
cargo check --no-default-features --features async-std,sparse
cargo check --no-default-features --features async-std,sparse,cache
cargo test --no-default-features --features js_interop_tests,tokio
cargo test --no-default-features --features js_interop_tests,tokio,sparse
cargo test --no-default-features --features js_interop_tests,tokio,sparse,cache
cargo test --no-default-features --features js_interop_tests,async-std
cargo test --no-default-features --features js_interop_tests,async-std,sparse
cargo test --no-default-features --features js_interop_tests,async-std,sparse,cache
cargo test --benches --no-default-features --features tokio
cargo test --benches --no-default-features --features async-std
test-windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- name: Run tests
run: |
cargo check --no-default-features --features tokio
cargo check --no-default-features --features tokio,sparse
cargo check --no-default-features --features tokio,sparse,cache
cargo check --no-default-features --features async-std
cargo check --no-default-features --features async-std,sparse
cargo check --no-default-features --features async-std,sparse,cache
cargo test --no-default-features --features tokio
cargo test --no-default-features --features tokio,sparse
cargo test --no-default-features --features tokio,sparse,cache
cargo test --no-default-features --features async-std
cargo test --no-default-features --features async-std,sparse
cargo test --no-default-features --features async-std,sparse,cache
cargo test --benches --no-default-features --features tokio
cargo test --benches --no-default-features --features async-std
test-macos:
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- name: Run tests
run: |
cargo check --no-default-features --features tokio
cargo check --no-default-features --features tokio,sparse
cargo check --no-default-features --features tokio,sparse,cache
cargo check --no-default-features --features async-std
cargo check --no-default-features --features async-std,sparse
cargo check --no-default-features --features async-std,sparse,cache
cargo test --no-default-features --features js_interop_tests,tokio
cargo test --no-default-features --features js_interop_tests,tokio,sparse
cargo test --no-default-features --features js_interop_tests,tokio,sparse,cache
cargo test --no-default-features --features js_interop_tests,async-std
cargo test --no-default-features --features js_interop_tests,async-std,sparse
cargo test --no-default-features --features js_interop_tests,async-std,sparse,cache
cargo test --benches --no-default-features --features tokio
cargo test --benches --no-default-features --features async-std
build-extra:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
with:
targets: wasm32-unknown-unknown
- name: Build WASM
run: |
cargo build --target=wasm32-unknown-unknown --no-default-features --features tokio
cargo build --target=wasm32-unknown-unknown --no-default-features --features async-std
- name: Build release
run: |
cargo build --release --no-default-features --features tokio
cargo build --release --no-default-features --features tokio,sparse
cargo build --release --no-default-features --features tokio,sparse,cache
cargo build --release --no-default-features --features async-std
cargo build --release --no-default-features --features async-std,sparse
cargo build --release --no-default-features --features async-std,sparse,cache
- name: Run examples
run: |
cargo run --no-default-features --features tokio --example disk
cargo run --no-default-features --features async-std --example disk
cargo run --no-default-features --features tokio --example memory
cargo run --no-default-features --features async-std --example memory
cargo run --no-default-features --features tokio --example replication
cargo run --no-default-features --features async-std --example replication
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
- uses: actions-rs/clippy-check@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Format check
run: |
cargo fmt -- --check