-
Notifications
You must be signed in to change notification settings - Fork 0
135 lines (123 loc) · 3.92 KB
/
ci.yml
File metadata and controls
135 lines (123 loc) · 3.92 KB
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
name: CI
on:
push:
branches: [master, main]
pull_request:
branches: [master, main]
env:
CARGO_TERM_COLOR: always
RUST_BACKTRACE: 1
jobs:
check:
name: Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@1.94.0
- uses: Swatinem/rust-cache@v2
- name: Install protoc
run: sudo apt-get update && sudo apt-get install -y protobuf-compiler
- run: cargo check
test:
name: Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@1.94.0
- uses: Swatinem/rust-cache@v2
- name: Install protoc
run: sudo apt-get update && sudo apt-get install -y protobuf-compiler
- run: cargo test
test-kafka:
name: Test (kafka feature)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@1.94.0
- uses: Swatinem/rust-cache@v2
# cmake, C toolchain, and libcurl headers are required to compile librdkafka from source.
- name: Install native Kafka build dependencies
run: sudo apt-get update && sudo apt-get install -y cmake libcurl4-openssl-dev
- name: Test axon-audit with kafka feature
run: cargo test -p axon-audit --features kafka
clippy:
name: Clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@1.94.0
with:
components: clippy
- uses: Swatinem/rust-cache@v2
- name: Install protoc
run: sudo apt-get update && sudo apt-get install -y protobuf-compiler
- run: cargo clippy --workspace --no-deps -- -D warnings -D clippy::todo -D clippy::unimplemented -D clippy::dbg_macro -D clippy::print_stdout -D clippy::unwrap_used
deny:
name: Deny
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@1.94.0
- uses: Swatinem/rust-cache@v2
- uses: taiki-e/install-action@v2
with:
tool: cargo-deny
- run: cargo deny check
machete:
name: Machete
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@1.94.0
- uses: Swatinem/rust-cache@v2
- uses: taiki-e/install-action@v2
with:
tool: cargo-machete
- run: cargo machete crates
fmt:
name: Format
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@1.94.0
with:
components: rustfmt
- run: cargo fmt --all -- --check
installer-service:
name: Installer + Service (Linux)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@1.94.0
- uses: Swatinem/rust-cache@v2
- name: Install protoc
run: sudo apt-get update && sudo apt-get install -y protobuf-compiler
- run: scripts/test-linux-installer-service.sh
ui:
name: UI
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: oven-sh/setup-bun@v2
- run: cd ui && bun install
- run: cd ui && bun run typecheck
- run: cd ui && bun run lint
- run: cd ui && bun test src/
- run: cd ui && bun run build
e2e-postgres:
name: E2E (PostgreSQL)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@1.94.0
- uses: Swatinem/rust-cache@v2
- uses: oven-sh/setup-bun@v2
- name: Install protoc
run: sudo apt-get update && sudo apt-get install -y protobuf-compiler
# Cargo.lock is gitignored; the e2e Docker build COPYs it for layer
# caching, so generate one before docker build when the rust-cache
# restore did not provide it.
- name: Ensure Cargo.lock exists
run: test -f Cargo.lock || cargo generate-lockfile
- run: cd ui && bun install
- run: cd ui && bun run test:e2e:postgres