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}