Skip to content

Commit 08e8ff3

Browse files
committed
Implement CI tooling in Rust
1 parent 552a959 commit 08e8ff3

File tree

4 files changed

+653
-0
lines changed

4 files changed

+653
-0
lines changed

src/ci/citool/Cargo.lock

Lines changed: 345 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,345 @@
1+
# This file is automatically @generated by Cargo.
2+
# It is not intended for manual editing.
3+
version = 4
4+
5+
[[package]]
6+
name = "anstream"
7+
version = "0.6.18"
8+
source = "registry+https://github.com/rust-lang/crates.io-index"
9+
checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b"
10+
dependencies = [
11+
"anstyle",
12+
"anstyle-parse",
13+
"anstyle-query",
14+
"anstyle-wincon",
15+
"colorchoice",
16+
"is_terminal_polyfill",
17+
"utf8parse",
18+
]
19+
20+
[[package]]
21+
name = "anstyle"
22+
version = "1.0.10"
23+
source = "registry+https://github.com/rust-lang/crates.io-index"
24+
checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9"
25+
26+
[[package]]
27+
name = "anstyle-parse"
28+
version = "0.2.6"
29+
source = "registry+https://github.com/rust-lang/crates.io-index"
30+
checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9"
31+
dependencies = [
32+
"utf8parse",
33+
]
34+
35+
[[package]]
36+
name = "anstyle-query"
37+
version = "1.1.2"
38+
source = "registry+https://github.com/rust-lang/crates.io-index"
39+
checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c"
40+
dependencies = [
41+
"windows-sys",
42+
]
43+
44+
[[package]]
45+
name = "anstyle-wincon"
46+
version = "3.0.7"
47+
source = "registry+https://github.com/rust-lang/crates.io-index"
48+
checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e"
49+
dependencies = [
50+
"anstyle",
51+
"once_cell",
52+
"windows-sys",
53+
]
54+
55+
[[package]]
56+
name = "anyhow"
57+
version = "1.0.95"
58+
source = "registry+https://github.com/rust-lang/crates.io-index"
59+
checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04"
60+
61+
[[package]]
62+
name = "citool"
63+
version = "0.1.0"
64+
dependencies = [
65+
"anyhow",
66+
"clap",
67+
"serde",
68+
"serde_json",
69+
"serde_yaml",
70+
]
71+
72+
[[package]]
73+
name = "clap"
74+
version = "4.5.28"
75+
source = "registry+https://github.com/rust-lang/crates.io-index"
76+
checksum = "3e77c3243bd94243c03672cb5154667347c457ca271254724f9f393aee1c05ff"
77+
dependencies = [
78+
"clap_builder",
79+
"clap_derive",
80+
]
81+
82+
[[package]]
83+
name = "clap_builder"
84+
version = "4.5.27"
85+
source = "registry+https://github.com/rust-lang/crates.io-index"
86+
checksum = "1b26884eb4b57140e4d2d93652abfa49498b938b3c9179f9fc487b0acc3edad7"
87+
dependencies = [
88+
"anstream",
89+
"anstyle",
90+
"clap_lex",
91+
"strsim",
92+
]
93+
94+
[[package]]
95+
name = "clap_derive"
96+
version = "4.5.28"
97+
source = "registry+https://github.com/rust-lang/crates.io-index"
98+
checksum = "bf4ced95c6f4a675af3da73304b9ac4ed991640c36374e4b46795c49e17cf1ed"
99+
dependencies = [
100+
"heck",
101+
"proc-macro2",
102+
"quote",
103+
"syn",
104+
]
105+
106+
[[package]]
107+
name = "clap_lex"
108+
version = "0.7.4"
109+
source = "registry+https://github.com/rust-lang/crates.io-index"
110+
checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6"
111+
112+
[[package]]
113+
name = "colorchoice"
114+
version = "1.0.3"
115+
source = "registry+https://github.com/rust-lang/crates.io-index"
116+
checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990"
117+
118+
[[package]]
119+
name = "equivalent"
120+
version = "1.0.1"
121+
source = "registry+https://github.com/rust-lang/crates.io-index"
122+
checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
123+
124+
[[package]]
125+
name = "hashbrown"
126+
version = "0.15.2"
127+
source = "registry+https://github.com/rust-lang/crates.io-index"
128+
checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289"
129+
130+
[[package]]
131+
name = "heck"
132+
version = "0.5.0"
133+
source = "registry+https://github.com/rust-lang/crates.io-index"
134+
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
135+
136+
[[package]]
137+
name = "indexmap"
138+
version = "2.7.1"
139+
source = "registry+https://github.com/rust-lang/crates.io-index"
140+
checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652"
141+
dependencies = [
142+
"equivalent",
143+
"hashbrown",
144+
]
145+
146+
[[package]]
147+
name = "is_terminal_polyfill"
148+
version = "1.70.1"
149+
source = "registry+https://github.com/rust-lang/crates.io-index"
150+
checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf"
151+
152+
[[package]]
153+
name = "itoa"
154+
version = "1.0.14"
155+
source = "registry+https://github.com/rust-lang/crates.io-index"
156+
checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674"
157+
158+
[[package]]
159+
name = "memchr"
160+
version = "2.7.4"
161+
source = "registry+https://github.com/rust-lang/crates.io-index"
162+
checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
163+
164+
[[package]]
165+
name = "once_cell"
166+
version = "1.20.3"
167+
source = "registry+https://github.com/rust-lang/crates.io-index"
168+
checksum = "945462a4b81e43c4e3ba96bd7b49d834c6f61198356aa858733bc4acf3cbe62e"
169+
170+
[[package]]
171+
name = "proc-macro2"
172+
version = "1.0.93"
173+
source = "registry+https://github.com/rust-lang/crates.io-index"
174+
checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99"
175+
dependencies = [
176+
"unicode-ident",
177+
]
178+
179+
[[package]]
180+
name = "quote"
181+
version = "1.0.38"
182+
source = "registry+https://github.com/rust-lang/crates.io-index"
183+
checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc"
184+
dependencies = [
185+
"proc-macro2",
186+
]
187+
188+
[[package]]
189+
name = "ryu"
190+
version = "1.0.19"
191+
source = "registry+https://github.com/rust-lang/crates.io-index"
192+
checksum = "6ea1a2d0a644769cc99faa24c3ad26b379b786fe7c36fd3c546254801650e6dd"
193+
194+
[[package]]
195+
name = "serde"
196+
version = "1.0.217"
197+
source = "registry+https://github.com/rust-lang/crates.io-index"
198+
checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70"
199+
dependencies = [
200+
"serde_derive",
201+
]
202+
203+
[[package]]
204+
name = "serde_derive"
205+
version = "1.0.217"
206+
source = "registry+https://github.com/rust-lang/crates.io-index"
207+
checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0"
208+
dependencies = [
209+
"proc-macro2",
210+
"quote",
211+
"syn",
212+
]
213+
214+
[[package]]
215+
name = "serde_json"
216+
version = "1.0.138"
217+
source = "registry+https://github.com/rust-lang/crates.io-index"
218+
checksum = "d434192e7da787e94a6ea7e9670b26a036d0ca41e0b7efb2676dd32bae872949"
219+
dependencies = [
220+
"itoa",
221+
"memchr",
222+
"ryu",
223+
"serde",
224+
]
225+
226+
[[package]]
227+
name = "serde_yaml"
228+
version = "0.9.34+deprecated"
229+
source = "registry+https://github.com/rust-lang/crates.io-index"
230+
checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47"
231+
dependencies = [
232+
"indexmap",
233+
"itoa",
234+
"ryu",
235+
"serde",
236+
"unsafe-libyaml",
237+
]
238+
239+
[[package]]
240+
name = "strsim"
241+
version = "0.11.1"
242+
source = "registry+https://github.com/rust-lang/crates.io-index"
243+
checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
244+
245+
[[package]]
246+
name = "syn"
247+
version = "2.0.98"
248+
source = "registry+https://github.com/rust-lang/crates.io-index"
249+
checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1"
250+
dependencies = [
251+
"proc-macro2",
252+
"quote",
253+
"unicode-ident",
254+
]
255+
256+
[[package]]
257+
name = "unicode-ident"
258+
version = "1.0.16"
259+
source = "registry+https://github.com/rust-lang/crates.io-index"
260+
checksum = "a210d160f08b701c8721ba1c726c11662f877ea6b7094007e1ca9a1041945034"
261+
262+
[[package]]
263+
name = "unsafe-libyaml"
264+
version = "0.2.11"
265+
source = "registry+https://github.com/rust-lang/crates.io-index"
266+
checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861"
267+
268+
[[package]]
269+
name = "utf8parse"
270+
version = "0.2.2"
271+
source = "registry+https://github.com/rust-lang/crates.io-index"
272+
checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
273+
274+
[[package]]
275+
name = "windows-sys"
276+
version = "0.59.0"
277+
source = "registry+https://github.com/rust-lang/crates.io-index"
278+
checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
279+
dependencies = [
280+
"windows-targets",
281+
]
282+
283+
[[package]]
284+
name = "windows-targets"
285+
version = "0.52.6"
286+
source = "registry+https://github.com/rust-lang/crates.io-index"
287+
checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
288+
dependencies = [
289+
"windows_aarch64_gnullvm",
290+
"windows_aarch64_msvc",
291+
"windows_i686_gnu",
292+
"windows_i686_gnullvm",
293+
"windows_i686_msvc",
294+
"windows_x86_64_gnu",
295+
"windows_x86_64_gnullvm",
296+
"windows_x86_64_msvc",
297+
]
298+
299+
[[package]]
300+
name = "windows_aarch64_gnullvm"
301+
version = "0.52.6"
302+
source = "registry+https://github.com/rust-lang/crates.io-index"
303+
checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
304+
305+
[[package]]
306+
name = "windows_aarch64_msvc"
307+
version = "0.52.6"
308+
source = "registry+https://github.com/rust-lang/crates.io-index"
309+
checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
310+
311+
[[package]]
312+
name = "windows_i686_gnu"
313+
version = "0.52.6"
314+
source = "registry+https://github.com/rust-lang/crates.io-index"
315+
checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
316+
317+
[[package]]
318+
name = "windows_i686_gnullvm"
319+
version = "0.52.6"
320+
source = "registry+https://github.com/rust-lang/crates.io-index"
321+
checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
322+
323+
[[package]]
324+
name = "windows_i686_msvc"
325+
version = "0.52.6"
326+
source = "registry+https://github.com/rust-lang/crates.io-index"
327+
checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
328+
329+
[[package]]
330+
name = "windows_x86_64_gnu"
331+
version = "0.52.6"
332+
source = "registry+https://github.com/rust-lang/crates.io-index"
333+
checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
334+
335+
[[package]]
336+
name = "windows_x86_64_gnullvm"
337+
version = "0.52.6"
338+
source = "registry+https://github.com/rust-lang/crates.io-index"
339+
checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
340+
341+
[[package]]
342+
name = "windows_x86_64_msvc"
343+
version = "0.52.6"
344+
source = "registry+https://github.com/rust-lang/crates.io-index"
345+
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"

src/ci/citool/Cargo.toml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
[package]
2+
name = "citool"
3+
version = "0.1.0"
4+
edition = "2021"
5+
6+
[dependencies]
7+
anyhow = "1"
8+
clap = { version = "4.5", features = ["derive"] }
9+
serde = { version = "1", features = ["derive"] }
10+
serde_yaml = "0.9"
11+
serde_json = "1"
12+
13+
[workspace]

src/ci/citool/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# CI tooling
2+
This is a simple Rust script that determines which jobs should be executed on CI based on the situation (pull request, try job, merge attempt). It also provides a simple way of executing (some) CI jobs locally.

0 commit comments

Comments
 (0)