Skip to content

Commit

Permalink
ci: enable arm64 tests (#280)
Browse files Browse the repository at this point in the history
Uses baremetal arm machines to run unit tests and vmm tests on arm.
Disables one problematic unit test.
  • Loading branch information
tjones60 authored Nov 8, 2024
1 parent b4b3dba commit 1066b8e
Show file tree
Hide file tree
Showing 7 changed files with 3,107 additions and 1,192 deletions.
311 changes: 304 additions & 7 deletions .github/workflows/openvmm-ci.json

Large diffs are not rendered by default.

1,826 changes: 1,237 additions & 589 deletions .github/workflows/openvmm-ci.yaml

Large diffs are not rendered by default.

315 changes: 306 additions & 9 deletions .github/workflows/openvmm-pr.json

Large diffs are not rendered by default.

1,820 changes: 1,235 additions & 585 deletions .github/workflows/openvmm-pr.yaml

Large diffs are not rendered by default.

20 changes: 19 additions & 1 deletion flowey/flowey_hvlite/src/pipelines/checkin_gates.rs
Original file line number Diff line number Diff line change
Expand Up @@ -766,6 +766,16 @@ impl IntoPipeline for CheckinGatesCli {
)),
unit_test_target: Some(("x64-linux-musl", openhcl_musl_target(CommonArch::X86_64))),
},
ClippyUnitTestJobParams {
platform: FlowPlatform::Windows,
arch: FlowArch::Aarch64,
gh_pool: crate::pipelines_shared::gh_pools::windows_arm_self_hosted_baremetal(),
clippy_targets: None,
unit_test_target: Some((
"aarch64-windows",
target_lexicon::triple!("aarch64-pc-windows-msvc"),
)),
},
] {
let mut job_name = Vec::new();
if let Some((label, _)) = &clippy_targets {
Expand Down Expand Up @@ -846,7 +856,7 @@ impl IntoPipeline for CheckinGatesCli {
vmm_tests_artifacts_linux_x86.finish().map_err(|missing| {
anyhow::anyhow!("missing required linux vmm_tests artifact: {missing}")
})?;
let _vmm_tests_artifacts_windows_aarch64 = vmm_tests_artifacts_windows_aarch64
let vmm_tests_artifacts_windows_aarch64 = vmm_tests_artifacts_windows_aarch64
.finish()
.map_err(|missing| {
anyhow::anyhow!("missing required windows-aarch64 vmm_tests artifact: {missing}")
Expand Down Expand Up @@ -894,6 +904,14 @@ impl IntoPipeline for CheckinGatesCli {
target: CommonTriple::X86_64_LINUX_GNU,
resolve_vmm_tests_artifacts: vmm_tests_artifacts_linux_x86,
},
VmmTestJobParams {
platform: FlowPlatform::Windows,
arch: FlowArch::Aarch64,
gh_pool: crate::pipelines_shared::gh_pools::windows_arm_self_hosted_baremetal(),
label: "aarch64-windows",
target: CommonTriple::AARCH64_WINDOWS_MSVC,
resolve_vmm_tests_artifacts: vmm_tests_artifacts_windows_aarch64,
},
] {
let test_label = format!("{label}-vmm-tests");

Expand Down
3 changes: 2 additions & 1 deletion flowey/flowey_hvlite/src/pipelines_shared/gh_pools.rs
Original file line number Diff line number Diff line change
Expand Up @@ -77,10 +77,11 @@ pub fn gh_hosted_linux() -> GhRunner {
GhRunner::GhHosted(GhRunnerOsLabel::UbuntuLatest)
}

pub fn windows_arm_self_hosted() -> GhRunner {
pub fn windows_arm_self_hosted_baremetal() -> GhRunner {
GhRunner::SelfHosted(vec![
"self-hosted".to_string(),
"Windows".to_string(),
"ARM64".to_string(),
"Baremetal".to_string(),
])
}
4 changes: 4 additions & 0 deletions openhcl/openhcl_boot/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -874,6 +874,10 @@ mod test {

// ensure we can boot with a _lot_ of vcpus
#[test]
#[cfg_attr(
target_arch = "aarch64",
ignore = "TODO: investigate why this doesn't always work on ARM"
)]
fn fdt_cpu_scaling() {
const MAX_CPUS: usize = 2048;

Expand Down

0 comments on commit 1066b8e

Please sign in to comment.