-
Notifications
You must be signed in to change notification settings - Fork 1
129 lines (99 loc) · 2.79 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
name: CI
run-name: "CI run '${{ github.head_ref || github.ref_name }}'"
on:
workflow_dispatch:
push:
branches:
- main
pull_request:
concurrency:
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
cancel-in-progress: true
jobs:
format:
name: Cargo format
runs-on: ubuntu-latest
steps:
- name: Install toolchain
uses: dtolnay/rust-toolchain@stable
with:
toolchain: 1.76.0
components: rustfmt
- name: Checkout source
uses: actions/checkout@v4
- name: Setup cache
uses: Swatinem/rust-cache@v2
with:
save-if: ${{ github.ref == 'refs/heads/main' }}
- name: Check format
run: cargo fmt --all
security-check:
name: Security check
runs-on: ubuntu-latest
steps:
- name: Install toolchain
uses: dtolnay/rust-toolchain@stable
with:
toolchain: 1.76.0
components: rustfmt
- name: Checkout sources
uses: actions/checkout@v4
- name: Install cargo-deny
run: cargo install cargo-deny --locked
- name: Install cargo-vet
run: cargo install cargo-vet --locked
- name: Run cargo deny
run: cargo deny check
- name: Run cargo vet
run: cargo vet init && cargo vet
- name: Report failure
if: failure()
run: |
echo "## Security Check Failed" >> $GITHUB_STEP_SUMMARY
clippy:
name: Check clippy
runs-on: ubuntu-latest
steps:
- name: Install toolchain
uses: dtolnay/rust-toolchain@stable
with:
toolchain: 1.76.0
components: clippy
- name: Checkout sources
uses: actions/checkout@v4
- name: Setup cache
uses: Swatinem/rust-cache@v2
with:
save-if: ${{ github.ref == 'refs/heads/main' }}
- name: Install dependencies
run: |
sudo apt-get -y update
sudo apt-get -y install npm
- name: Install quicktype
run: |
npm install -g quicktype
- name: Run clippy
run: cargo clippy -- -D warnings
build-test:
name: Cargo test
runs-on: ubuntu-latest
steps:
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
with:
toolchain: 1.76.0
- name: Checkout sources
uses: actions/checkout@v4
- name: Setup cache
uses: Swatinem/rust-cache@v2
with:
save-if: ${{ github.ref == 'refs/heads/main' }}
- name: Install dependencies
run: |
sudo apt-get -y update
sudo apt-get -y install npm
- name: Install quicktype
run: |
npm install -g quicktype
- name: Run test
run: cargo test