flowey_lib_hvlite/_jobs/
build_openhcl_igvm_from_recipe_nix.rs1use crate::_jobs::build_and_publish_openhcl_igvm_from_recipe::OpenhclIgvmBuildParams;
14use crate::_jobs::build_and_publish_openhcl_igvm_from_recipe::OpenhclIgvmOutputs;
15use crate::common::CommonArch;
16use crate::resolve_openhcl_kernel_package::OpenhclKernelPackageKind;
17use flowey::node::prelude::*;
18
19flowey_request! {
20 pub struct Params {
21 pub arch: CommonArch,
22 pub kernel_kind: OpenhclKernelPackageKind,
23 pub igvm_files: Vec<(OpenhclIgvmBuildParams, OpenhclIgvmOutputs)>,
24 }
25}
26
27new_simple_flow_node!(struct Node);
28
29impl SimpleFlowNode for Node {
30 type Request = Params;
31
32 fn imports(ctx: &mut ImportCtx<'_>) {
33 ctx.import::<crate::_jobs::cfg_nix::Node>();
34 ctx.import::<crate::_jobs::build_and_publish_openhcl_igvm_from_recipe::Node>();
35 }
36
37 fn process_request(request: Self::Request, ctx: &mut NodeCtx<'_>) -> anyhow::Result<()> {
38 let Params {
39 arch,
40 kernel_kind,
41 igvm_files,
42 } = request;
43
44 ctx.req(crate::_jobs::cfg_nix::Params { arch, kernel_kind });
45
46 ctx.req(crate::_jobs::build_and_publish_openhcl_igvm_from_recipe::Params { igvm_files });
47
48 Ok(())
49 }
50}