Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6,683 changes: 3,512 additions & 3,171 deletions .github/workflows/openvmm-ci.yaml

Large diffs are not rendered by default.

6,966 changes: 3,632 additions & 3,334 deletions .github/workflows/openvmm-pr-release.yaml

Large diffs are not rendered by default.

7,536 changes: 3,918 additions & 3,618 deletions .github/workflows/openvmm-pr.yaml

Large diffs are not rendered by default.

4,849 changes: 2,557 additions & 2,292 deletions ci-flowey/openvmm-pr.yaml

Large diffs are not rendered by default.

446 changes: 256 additions & 190 deletions flowey/flowey_hvlite/src/pipelines/checkin_gates.rs

Large diffs are not rendered by default.

18 changes: 1 addition & 17 deletions flowey/flowey_lib_hvlite/src/build_openhcl_boot.rs
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ impl FlowNode for Node {

fn imports(ctx: &mut ImportCtx<'_>) {
ctx.import::<crate::run_cargo_build::Node>();
ctx.import::<flowey_lib_common::install_dist_pkg::Node>();
}

fn emit(requests: Vec<Self::Request>, ctx: &mut NodeCtx<'_>) -> anyhow::Result<()> {
Expand Down Expand Up @@ -73,21 +72,6 @@ impl FlowNode for Node {
OpenhclBootBuildProfile::Release => BuildProfile::BootRelease,
};

let mut pre_build_deps = Vec::new();

// TODO: install build tools for other platforms
if matches!(
ctx.platform(),
FlowPlatform::Linux(FlowPlatformLinuxDistro::Ubuntu)
) {
pre_build_deps.push(ctx.reqv(|v| {
flowey_lib_common::install_dist_pkg::Request::Install {
package_names: vec!["build-essential".into()],
done: v,
}
}));
}

let output = ctx.reqv(|v| crate::run_cargo_build::Request {
crate_name: "openhcl_boot".into(),
out_name: "openhcl_boot".into(),
Expand All @@ -101,7 +85,7 @@ impl FlowNode for Node {
.into_iter()
.collect(),
)),
pre_build_deps,
pre_build_deps: Vec::new(),
output: v,
Comment thread
smalis-msft marked this conversation as resolved.
});

Expand Down
2 changes: 1 addition & 1 deletion flowey/flowey_lib_hvlite/src/build_openvmm.rs
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ impl FlowNode for Node {
) {
pre_build_deps.push(ctx.reqv(|v| {
flowey_lib_common::install_dist_pkg::Request::Install {
package_names: vec!["libssl-dev".into(), "build-essential".into()],
package_names: vec!["libssl-dev".into(), "pkg-config".into()],
done: v,
}
}));
Expand Down
16 changes: 1 addition & 15 deletions flowey/flowey_lib_hvlite/src/build_openvmm_hcl.rs
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,6 @@ impl FlowNode for Node {
fn imports(ctx: &mut ImportCtx<'_>) {
ctx.import::<crate::run_cargo_build::Node>();
ctx.import::<crate::init_openvmm_magicpath_openhcl_sysroot::Node>();
ctx.import::<flowey_lib_common::install_dist_pkg::Node>();
}

fn emit(requests: Vec<Self::Request>, ctx: &mut NodeCtx<'_>) -> anyhow::Result<()> {
Expand Down Expand Up @@ -124,20 +123,7 @@ impl FlowNode for Node {
.reqv(|v| crate::init_openvmm_magicpath_openhcl_sysroot::Request { arch, path: v });
Comment thread
smalis-msft marked this conversation as resolved.

// required due to ambient dependencies in openvmm_hcl's source code
pre_build_deps.push(openhcl_deps_path.clone().into_side_effect());

// TODO: install build tools for other platforms
if matches!(
ctx.platform(),
FlowPlatform::Linux(FlowPlatformLinuxDistro::Ubuntu)
) {
pre_build_deps.push(ctx.reqv(|v| {
flowey_lib_common::install_dist_pkg::Request::Install {
package_names: vec!["build-essential".into()],
done: v,
}
}));
}
pre_build_deps.push(openhcl_deps_path.into_side_effect());

let mut features = features
.into_iter()
Expand Down
18 changes: 1 addition & 17 deletions flowey/flowey_lib_hvlite/src/build_sidecar.rs
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ impl FlowNode for Node {

fn imports(ctx: &mut ImportCtx<'_>) {
ctx.import::<crate::run_cargo_build::Node>();
ctx.import::<flowey_lib_common::install_dist_pkg::Node>();
}

fn emit(requests: Vec<Self::Request>, ctx: &mut NodeCtx<'_>) -> anyhow::Result<()> {
Expand Down Expand Up @@ -73,21 +72,6 @@ impl FlowNode for Node {
SidecarBuildProfile::Release => BuildProfile::BootRelease,
};

let mut pre_build_deps = Vec::new();

// TODO: install build tools for other platforms
if matches!(
ctx.platform(),
FlowPlatform::Linux(FlowPlatformLinuxDistro::Ubuntu)
) {
pre_build_deps.push(ctx.reqv(|v| {
flowey_lib_common::install_dist_pkg::Request::Install {
package_names: vec!["build-essential".into()],
done: v,
}
}));
}

let output = ctx.reqv(|v| crate::run_cargo_build::Request {
crate_name: "sidecar".into(),
out_name: "sidecar".into(),
Expand All @@ -101,7 +85,7 @@ impl FlowNode for Node {
.into_iter()
.collect(),
)),
pre_build_deps,
pre_build_deps: Vec::new(),
output: v,
Comment thread
smalis-msft marked this conversation as resolved.
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,19 +22,34 @@ impl FlowNode for Node {
ctx.import::<crate::init_openvmm_magicpath_protoc::Node>();
ctx.import::<crate::init_openvmm_cargo_config_deny_warnings::Node>();
ctx.import::<flowey_lib_common::install_rust::Node>();
ctx.import::<flowey_lib_common::install_dist_pkg::Node>();
}

fn emit(requests: Vec<Self::Request>, ctx: &mut NodeCtx<'_>) -> anyhow::Result<()> {
if requests.is_empty() {
return Ok(());
}

let side_effects = [
let mut side_effects = vec![
ctx.reqv(crate::init_openvmm_cargo_config_deny_warnings::Request::Done),
ctx.reqv(crate::init_openvmm_magicpath_protoc::Request),
ctx.reqv(flowey_lib_common::install_rust::Request::EnsureInstalled),
];

// On Ubuntu, we need the `build-essential` package to ensure that
// the system has a working linker.
if matches!(
ctx.platform(),
FlowPlatform::Linux(FlowPlatformLinuxDistro::Ubuntu)
) {
side_effects.push(ctx.reqv(|v| {
flowey_lib_common::install_dist_pkg::Request::Install {
package_names: vec!["build-essential".into()],
done: v,
}
}));
}

ctx.emit_side_effect_step(side_effects, requests.into_iter().map(|x| x.0));

Ok(())
Expand Down
Loading