1use crate::model::JobSpec;
2use crate::pipeline::VolumeMount;
3use crate::ui::UiBridge;
4use std::path::Path;
5
6pub struct ExecuteContext<'a> {
7 pub host_workdir: &'a Path,
8 pub script_path: &'a Path,
9 pub log_path: &'a Path,
10 pub mounts: &'a [VolumeMount],
11 pub image: &'a str,
12 pub image_platform: Option<&'a str>,
13 pub image_user: Option<&'a str>,
14 pub image_entrypoint: &'a [String],
15 pub container_name: &'a str,
16 pub job: &'a JobSpec,
17 pub ui: Option<&'a UiBridge>,
18 pub env_vars: &'a [(String, String)],
19 pub network: Option<&'a str>,
20 pub preserve_runtime_objects: bool,
21 pub arch: Option<&'a str>,
22 pub privileged: bool,
23 pub cap_add: &'a [String],
24 pub cap_drop: &'a [String],
25}