-
Notifications
You must be signed in to change notification settings - Fork 15
139 lines (116 loc) · 3.05 KB
/
ci.yaml
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
---
name: CI
"on":
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build:
name: Build
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
env:
RUSTFLAGS: -D warnings
RUST_BACKTRACE: 1
steps:
- name: Checkout repository
uses: actions/checkout@v2
with:
submodules: true
- name: Install Protoc
uses: arduino/setup-protoc@v3
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Install Rust toolchain
run: rustup show
- name: Compile
run: cargo build --workspace --verbose
- name: Compile tests
run: cargo test --workspace --no-run
- name: Test
run: cargo test --workspace
rust:
name: Lint and format Rust
runs-on: ubuntu-latest
env:
RUSTFLAGS: -D warnings
RUST_BACKTRACE: 1
steps:
- name: Checkout repository
uses: actions/checkout@v2
with:
submodules: true
- name: Install Protoc
uses: arduino/setup-protoc@v3
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Install Rust toolchain
run: rustup show
- name: Check formatting
run: cargo fmt -- --check --color=auto
- name: Lint with Clippy
uses: actions-rs/clippy-check@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
args: --workspace
- name: Run cargo-deny
uses: EmbarkStudios/cargo-deny-action@v1
coverage:
name: Code Coverage
runs-on: ubuntu-latest
env:
RUSTFLAGS: -D warnings
RUST_BACKTRACE: 1
steps:
- name: Checkout repository
uses: actions/checkout@v2
with:
submodules: true
- name: Install Protoc
uses: arduino/setup-protoc@v3
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Run cargo-tarpaulin
run: |
cargo install cargo-tarpaulin
cargo tarpaulin --out Xml
- name: Upload Coverage
uses: codecov/codecov-action@v1
with:
token: ${{ secrets.CODECOV_TOKEN }}
frontend:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Protoc
uses: arduino/setup-protoc@v3
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Install node
uses: actions/setup-node@v2
with:
node-version: '20'
- name: Install Python
uses: actions/setup-python@v2
with:
python-version: '3.12'
architecture: 'x64'
- name: Install cargo
uses: actions-rs/toolchain@v1
with:
toolchain: stable
- run: cargo install wasm-bindgen-cli
- name: Install dependencies
run: python -m pip install jupyterlab
- name: Build the Typescript project
run: |
rustup target add wasm32-unknown-unknown
yarn install
DISABLE_WASM_OPT=1 yarn build