-
Notifications
You must be signed in to change notification settings - Fork 0
140 lines (114 loc) · 4.07 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
name: ci (rust + web)
on:
push:
branches:
- "main"
pull_request:
types: ["opened", "reopened"]
env:
CARGO_TERM_COLOR: always
jobs:
build_and_test:
name: build + test (rust, linux)
runs-on: ubuntu-latest
strategy:
matrix:
toolchain:
- stable
- nightly
fail-fast: false
steps:
- uses: actions/checkout@v4
- name: Set up Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{ matrix.toolchain }}
- name: Cache cargo registry
id: cargo-reg-cache
uses: actions/cache@v4
with:
path: ~/.cargo/registry
key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }}
- name: Cache cargo index
id: cargo-index-cache
uses: actions/cache@v4
with:
path: ~/.cargo/git
key: ${{ runner.os }}-cargo-index-${{ hashFiles('**/Cargo.lock') }}
- name: Cache cargo build
id: cargo-build-cache
uses: actions/cache@v4
with:
path: target
key: ${{ runner.os }}-cargo-build-target-${{ matrix.toolchain }}-${{ hashFiles('**/Cargo.lock') }}
- name: Cache cargo bin
uses: actions/cache@v4
with:
path: ~/.cargo/bin
key: ${{ runner.os }}-cargo-bin-${{ hashFiles('**/Cargo.lock') }}
- name: Build
run: cargo build
# save all the caches real quick
- name: Save cargo registry cache before testing
id: cargo-reg-save
uses: actions/cache/restore@v4
with:
path: ~/.cargo/registry
key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }}
- name: Save cargo index cache before testing
id: cargo-index-save
uses: actions/cache/restore@v4
with:
path: ~/.cargo/git
key: ${{ runner.os }}-cargo-index-${{ hashFiles('**/Cargo.lock') }}
- name: Save cargo build cache before testing
id: cargo-build-save
uses: actions/cache/restore@v4
with:
path: target
key: ${{ runner.os }}-cargo-build-target-${{ matrix.toolchain }}-${{ hashFiles('**/Cargo.lock') }}
# ok all good, continue with the tests
- name: Install `cargo-nextest`
uses: taiki-e/install-action@nextest
- name: Run tests
run: RUST_BACKTRACE=1 cargo nextest run --no-fail-fast --verbose
- name: Run doctests
run: cargo test --doc
windows_build:
name: build (rust, windows)
runs-on: windows-latest
strategy:
matrix:
toolchain:
- stable
fail-fast: false
steps:
- uses: actions/checkout@v4
- name: Set up Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{ matrix.toolchain }}
- name: Build
run: cargo build
web:
name: lint web stuff
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Biome
uses: biomejs/setup-biome@v2
with:
version: latest
- name: Run Biome
run: biome ci frontend/src
test_semver:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Ensure we have `cmake`
run: sudo apt update && sudo apt install -y cmake
- name: Check semver
uses: obi1kenobi/cargo-semver-checks-action@v2
with:
package: libghr