GitRoot
craft your forge, build your project, grow your community freely
1// SPDX-FileCopyrightText: 2025 Romain Maneschi <romain@gitroot.dev>
2//
3// SPDX-License-Identifier: MIT
4
5use serde::{Deserialize, Serialize};
6
7#[derive(Serialize, Deserialize)]
8#[serde(rename_all = "camelCase")]
9pub struct Exec {
10 pub build: String, //image docker, path to Dockerfile
11 pub report_stats: bool,
12 pub cmds: Vec<Cmd>,
13 pub env: Vec<String>,
14 pub artifacts: Vec<String>,
15 pub cache: Vec<Cache>,
16}
17
18#[derive(Serialize, Deserialize)]
19#[serde(rename_all = "camelCase")]
20pub struct ExecStatus {
21 pub cmds_exec: Vec<String>,
22 pub cmds_status: Vec<i32>,
23 pub cmds_logs: Vec<String>,
24 pub cmds_stats: Vec<CmdStats>,
25 pub artifacts: Vec<String>,
26}
27
28#[derive(Serialize, Deserialize)]
29#[serde(rename_all = "camelCase")]
30pub struct CmdStats {
31 pub max_memory_bytes: u64,
32 pub max_threads: i32,
33 pub read_bytes_total: u64,
34 pub write_bytes_total: u64,
35 pub total_cpu_time_ms: u64,
36}
37
38#[derive(Serialize, Deserialize)]
39#[serde(rename_all = "camelCase")]
40pub struct Cmd {
41 pub cmd: String,
42 pub args: Vec<String>,
43}
44
45#[derive(Serialize, Deserialize)]
46#[serde(rename_all = "camelCase")]
47pub struct Cache {
48 pub key: String,
49 pub path: String,
50 pub read_only: bool,
51}