-
Notifications
You must be signed in to change notification settings - Fork 10
155 lines (149 loc) · 3.83 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
143
144
145
146
147
148
149
150
151
152
153
154
155
name: CI
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
on:
merge_group:
workflow_dispatch:
pull_request:
branches: [master]
jobs:
check_fmt:
name: Check fmt and clippy
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
node: ["18"]
steps:
- uses: actions/checkout@v4
- name: Install Rust stable
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
components: clippy
- name: Check fmt
run: cargo fmt -- --check
- name: Check clippy
run: make check-clippy
- name: Use Node.js ${{ matrix.node }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
- name: Check prettier
run: make npm_lint
- name: Check docs building
run: make run_docs
macos_ci:
name: MacOS Linking test
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-latest]
rust: [stable]
node: ["16", "18", "20"]
steps:
- uses: actions/checkout@v4
- name: Install ${{ matrix.rust }}
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.rust }}
override: true
- uses: actions-rs/[email protected]
with:
crate: nj-cli
version: latest
use-tool-cache: true
- name: Use Node.js ${{ matrix.node }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
- name: Install and Build
run: |
npm install
- name: Test
run: |
make test_macos_ci
smoke_test:
name: Smoke test
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
rust: [stable]
node: ["16", "18", "20"]
steps:
- uses: AbsaOSS/k3d-action@v2
name: "Create fluvio k3d Cluster"
with:
cluster-name: "fluvio"
- name: Install Fluvio Local Cluster
uses: infinyon/fluvio@master
with:
cluster-type: local
version: "stable"
- name: Check Fluvio Installation
run: |
fluvio version
fluvio topic list
fluvio topic create "foobar"
sleep 3
echo foo | fluvio produce "foobar"
fluvio consume foobar -B -d
- name: Create Topic
run: |
fluvio topic create -p 1 -r 1 my-topic
- uses: actions/checkout@v4
- name: Install ${{ matrix.rust }}
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.rust }}
override: true
- uses: actions-rs/[email protected]
with:
crate: nj-cli
version: latest
use-tool-cache: true
- name: Use Node.js ${{ matrix.node }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
- name: Install and Build
run: |
npm install
- name: Test
run: |
make test_all
- name: Run Examples
run: |
FLUVIO_DEV=1 make examples
check_security:
name: check security
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
rust: [stable]
node: ["16", "18"]
steps:
- uses: actions/checkout@v4
- name: Install ${{ matrix.rust }}
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.rust }}
override: true
- name: npm audit
run: npm audit
continue-on-error: true
#- name: Security audit
# uses: actions-rs/audit-check@v1
# with:
# token: ${{ secrets.GITHUB_TOKEN }}
done:
name: Done
needs: [check_fmt, check_security, smoke_test, macos_ci]
runs-on: ubuntu-latest
steps:
- name: Done
run: echo Done