-
Notifications
You must be signed in to change notification settings - Fork 0
167 lines (164 loc) · 5.17 KB
/
building.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
156
157
158
159
160
161
162
163
164
165
166
167
name: building
on:
push:
branches: ["main"]
pull_request:
branches: ["main"]
env:
CARGO_TERM_COLOR: always
jobs:
lint-and-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install -y wget clang
- name: Setup Rust toolchain
uses: moonrepo/setup-rust@v1
with:
channel: stable
bins: cargo-hack, cargo-deny, clippy-sarif, sarif-fmt
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Setup mold
uses: rui314/setup-mold@v1
- name: Setup buf
uses: bufbuild/buf-setup-action@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Setup protoc
uses: Noelware/[email protected]
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Setup sccache
uses: mozilla-actions/[email protected]
- name: Enable sccache
run: |
echo "SCCACHE_GHA_ENABLED=true" >> $GITHUB_ENV
echo "RUSTC_WRAPPER=sccache" >> $GITHUB_ENV
- name: Lint protobuf files
uses: bufbuild/buf-lint-action@v1
- name: Run clippy lint
run: >
cargo hack clippy --all-targets --each-feature --workspace --message-format json
| clippy-sarif
| tee rust-clippy-results.sarif
| sarif-fmt
continue-on-error: true
- name: Upload analysis results to GitHub
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: rust-clippy-results.sarif
wait-for-processing: true
- name: Run tests
run: cargo hack test --each-feature --verbose --workspace
- name: Check dependency graph
run: cargo deny --all-features --workspace check
msrv:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install -y wget clang
- name: Setup Rust toolchain
uses: moonrepo/setup-rust@v1
with:
channel: "1.79"
bins: cargo-hack
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Setup mold
uses: rui314/setup-mold@v1
- name: Setup buf
uses: bufbuild/buf-setup-action@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Setup protoc
uses: Noelware/[email protected]
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Setup sccache
uses: mozilla-actions/[email protected]
- name: Check for MSRV compliance
env:
SCCACHE_GHA_ENABLED: true
RUSTC_WRAPPER: sccache
run: cargo hack test --rust-version --each-feature --verbose --workspace
pkg-deb:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y wget lintian clang
- name: Setup Rust toolchain
uses: moonrepo/setup-rust@v1
with:
channel: stable
bins: cargo-deb
cache: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Setup mold
uses: rui314/setup-mold@v1
- name: Setup buf
uses: bufbuild/buf-setup-action@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Setup protoc
uses: Noelware/[email protected]
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Setup sccache
uses: mozilla-actions/[email protected]
- name: Enable sccache
run: |
echo "SCCACHE_GHA_ENABLED=true" >> $GITHUB_ENV
echo "RUSTC_WRAPPER=sccache" >> $GITHUB_ENV
- name: Build Debian package
run: cargo xtask dist deb && dpkg-deb -c target/debian/*.deb
- name: Lint Debian package
run: lintian -i target/debian/*.deb
- uses: actions/upload-artifact@v4
with:
name: rsjudge-deb
path: target/debian/*.deb
pkg-rpm:
runs-on: ubuntu-latest
container: fedora:38
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo dnf install -y clang mold protobuf-compiler
- name: Setup Rust toolchain
uses: moonrepo/setup-rust@v1
with:
channel: stable
bins: cargo-generate-rpm
cache: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Setup buf
uses: bufbuild/buf-setup-action@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Setup sccache
uses: mozilla-actions/[email protected]
- name: Enable sccache
run: |
echo "SCCACHE_GHA_ENABLED=true" >> $GITHUB_ENV
echo "RUSTC_WRAPPER=sccache" >> $GITHUB_ENV
- name: Build RPM package
run: cargo xtask dist rpm && rpm -qlp target/generate-rpm/*.rpm
- uses: actions/upload-artifact@v4
with:
name: rsjudge-rpm
path: target/generate-rpm/*.rpm