Skip to content
Open
Show file tree
Hide file tree
Changes from 8 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
1,120 changes: 420 additions & 700 deletions .github/workflows/openvmm-ci.yaml

Large diffs are not rendered by default.

1,053 changes: 387 additions & 666 deletions .github/workflows/openvmm-pr-release.yaml

Large diffs are not rendered by default.

1,064 changes: 392 additions & 672 deletions .github/workflows/openvmm-pr.yaml

Large diffs are not rendered by default.

40 changes: 20 additions & 20 deletions ci-flowey/openvmm-pr.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

42 changes: 27 additions & 15 deletions flowey/flowey_hvlite/src/pipelines/checkin_gates.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1250,7 +1250,7 @@ impl IntoPipeline for CheckinGatesCli {
.map_err(|missing| {
anyhow::anyhow!("missing required windows-amd-snp vmm_tests artifact: {missing}")
})?;
let vmm_tests_artifacts_linux_mshv_x86 = vmm_tests_artifacts_linux_musl_x86
let _vmm_tests_artifacts_linux_mshv_x86 = vmm_tests_artifacts_linux_musl_x86
.finish()
.map_err(|missing| {
anyhow::anyhow!("missing required linux-mshv (musl) vmm_tests artifact: {missing}")
Expand All @@ -1271,6 +1271,7 @@ impl IntoPipeline for CheckinGatesCli {
arch: FlowArch,
gh_pool: GhRunner,
ado_pool: Option<AdoPool>,
temp_dir: Option<PathBuf>,
label: &'a str,
target: CommonTriple,
resolve_vmm_tests_artifacts: vmm_tests_artifact_builders::ResolveVmmTestsDepArtifacts,
Expand Down Expand Up @@ -1369,6 +1370,7 @@ impl IntoPipeline for CheckinGatesCli {
arch,
gh_pool,
ado_pool,
temp_dir,
label,
target,
resolve_vmm_tests_artifacts,
Expand All @@ -1382,6 +1384,7 @@ impl IntoPipeline for CheckinGatesCli {
arch: FlowArch::X86_64,
gh_pool: gh_pools::windows_intel_1es(),
ado_pool: Some(ado_pools::windows_intel_1es()),
temp_dir: Some(gh_pools::WINDOWS_TEMP_1ES.into()),
label: "x64-windows-intel",
target: CommonTriple::X86_64_WINDOWS_MSVC,
resolve_vmm_tests_artifacts: vmm_tests_artifacts_windows_intel_x86,
Expand All @@ -1395,6 +1398,7 @@ impl IntoPipeline for CheckinGatesCli {
arch: FlowArch::X86_64,
gh_pool: gh_pools::windows_tdx_self_hosted_baremetal(),
ado_pool: None,
temp_dir: None,
label: "x64-windows-intel-tdx",
target: CommonTriple::X86_64_WINDOWS_MSVC,
resolve_vmm_tests_artifacts: vmm_tests_artifacts_windows_intel_tdx_x86,
Expand All @@ -1408,9 +1412,11 @@ impl IntoPipeline for CheckinGatesCli {
arch: FlowArch::X86_64,
gh_pool: gh_pools::windows_amd_1es(),
ado_pool: Some(ado_pools::windows_amd_1es()),
temp_dir: Some(gh_pools::WINDOWS_TEMP_1ES.into()),
label: "x64-windows-amd",
target: CommonTriple::X86_64_WINDOWS_MSVC,
resolve_vmm_tests_artifacts: vmm_tests_artifacts_windows_amd_x86,
// tmk and sidecar requires x2apic, which causes our amd nested runners to crash
nextest_filter_expr: standard_filter.clone(),
test_artifacts: standard_x64_test_artifacts.clone(),
needs_prep_run: false,
Expand All @@ -1422,6 +1428,7 @@ impl IntoPipeline for CheckinGatesCli {
// arch: FlowArch::X86_64,
// gh_pool: gh_pools::windows_snp_self_hosted_baremetal(),
// ado_pool: None,
// temp_dir: None,
// label: "x64-windows-amd-snp",
// target: CommonTriple::X86_64_WINDOWS_MSVC,
// resolve_vmm_tests_artifacts: vmm_tests_artifacts_windows_amd_snp_x86,
Expand All @@ -1435,6 +1442,7 @@ impl IntoPipeline for CheckinGatesCli {
arch: FlowArch::X86_64,
gh_pool: gh_pools::linux_amd_1es(),
ado_pool: Some(ado_pools::linux_amd_1es()),
temp_dir: Some(gh_pools::LINUX_TEMP_1ES.into()),
label: "x64-linux-amd-kvm",
target: CommonTriple::X86_64_LINUX_GNU,
resolve_vmm_tests_artifacts: vmm_tests_artifacts_linux_x86,
Expand All @@ -1444,25 +1452,27 @@ impl IntoPipeline for CheckinGatesCli {
needs_prep_run: false,
hugetlb_2mb_overcommit_pages: Some(HUGETLB_2MB_OVERCOMMIT_PAGES),
},
VmmTestJobParams {
platform: FlowPlatform::Linux(FlowPlatformLinuxDistro::AzureLinux),
arch: FlowArch::X86_64,
gh_pool: gh_pools::linux_mshv_1es(),
ado_pool: None,
label: "x64-linux-intel-mshv",
target: CommonTriple::X86_64_LINUX_MUSL,
resolve_vmm_tests_artifacts: vmm_tests_artifacts_linux_mshv_x86,
// - No legal way to obtain gen1 pcat blobs on non-msft linux machines
nextest_filter_expr: format!("{standard_filter} & !test(pcat_x64)"),
test_artifacts: standard_x64_test_artifacts.clone(),
needs_prep_run: false,
hugetlb_2mb_overcommit_pages: None,
},
// VmmTestJobParams {
// platform: FlowPlatform::Linux(FlowPlatformLinuxDistro::AzureLinux),
// arch: FlowArch::X86_64,
// gh_pool: gh_pools::linux_mshv_1es(),
// ado_pool: None,
// temp_dir: temp_dir_from(gh_pools::WINDOWS_WORK_FOLDER),
// label: "x64-linux-intel-mshv",
// target: CommonTriple::X86_64_LINUX_MUSL,
// resolve_vmm_tests_artifacts: vmm_tests_artifacts_linux_mshv_x86,
// // - No legal way to obtain gen1 pcat blobs on non-msft linux machines
// nextest_filter_expr: format!("{standard_filter} & !test(pcat_x64)"),
// test_artifacts: standard_x64_test_artifacts.clone(),
// needs_prep_run: false,
// hugetlb_2mb_overcommit_pages: None,
// },
Comment thread
tjones60 marked this conversation as resolved.
VmmTestJobParams {
Comment on lines +1455 to 1470
platform: FlowPlatform::Windows,
arch: FlowArch::Aarch64,
gh_pool: gh_pools::windows_arm_self_hosted_baremetal(),
ado_pool: None,
temp_dir: None,
label: "aarch64-windows",
target: CommonTriple::AARCH64_WINDOWS_MSVC,
resolve_vmm_tests_artifacts: vmm_tests_artifacts_windows_aarch64,
Expand Down Expand Up @@ -1520,6 +1530,7 @@ impl IntoPipeline for CheckinGatesCli {
artifact_dir: pub_vmm_tests_results.map(|x| ctx.publish_artifact(x)),
needs_prep_run,
hugetlb_2mb_overcommit_pages,
temp_dir,
done: ctx.new_done_handle(),
}
});
Expand Down Expand Up @@ -1661,6 +1672,7 @@ impl IntoPipeline for CheckinGatesCli {
artifact_dir: pub_mi_secure_test_results.map(|x| ctx.publish_artifact(x)),
needs_prep_run: false,
hugetlb_2mb_overcommit_pages: None,
temp_dir: Some(gh_pools::WINDOWS_TEMP_1ES.into()),
done: ctx.new_done_handle(),
}
});
Expand Down
40 changes: 23 additions & 17 deletions flowey/flowey_hvlite/src/pipelines_shared/gh_pools.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,46 +5,52 @@

use flowey::pipeline::prelude::*;

pub const AMD_POOL_1ES: &str = "openvmm-gh-amd-westus3";
pub const INTEL_POOL_1ES: &str = "openvmm-gh-intel-westus3";
pub const ARM_POOL_1ES: &str = "openvmm-gh-arm-westus2";

pub const WINDOWS_IMAGE_AMD64: &str = "win-amd64";
pub const WINDOWS_IMAGE_ARM64: &str = "win-arm64";
pub const LINUX_IMAGE_AMD64: &str = "ubuntu2404-amd64";
pub const LINUX_IMAGE_ARM64: &str = "ubuntu2404-arm64";
pub const MSHV_IMAGE_AMD64: &str = "azurelinux3-amd64-dom0";

fn gh_pool_with_image_1es(pool: &str, image: &str) -> GhRunner {
pub const AMD_POOL_1ES: &str = "openvmm-gh-amd";
pub const INTEL_POOL_1ES: &str = "openvmm-gh-intel";
pub const ARM_POOL_1ES: &str = "openvmm-gh-arm";

pub const WINDOWS_IMAGE_AMD64: &str = "win-amd64-v2";
pub const WINDOWS_IMAGE_ARM64: &str = "win-arm64-v2";
pub const LINUX_IMAGE_AMD64: &str = "ubuntu2404-amd64-v2";
pub const LINUX_IMAGE_ARM64: &str = "ubuntu2404-arm64-v2";
pub const MSHV_IMAGE_AMD64: &str = "azurelinux3-amd64-dom0-v2";

pub const WINDOWS_TEMP_1ES: &str = "E:\\t";
pub const WINDOWS_WORK_1ES: &str = "E:\\a";
pub const LINUX_TEMP_1ES: &str = "/mnt/azure_nvme_temp/t";
pub const LINUX_WORK_1ES: &str = "/mnt/azure_nvme_temp/a";

fn gh_pool_with_image_1es(pool: &str, image: &str, work_folder: &str) -> GhRunner {
GhRunner::SelfHosted(vec![
"self-hosted".to_string(),
format!("1ES.Pool={pool}"),
format!("1ES.ImageOverride={image}"),
format!("1ES.WorkFolder={work_folder}"),
])
}

pub fn windows_amd_1es() -> GhRunner {
gh_pool_with_image_1es(AMD_POOL_1ES, WINDOWS_IMAGE_AMD64)
gh_pool_with_image_1es(AMD_POOL_1ES, WINDOWS_IMAGE_AMD64, WINDOWS_WORK_1ES)
}

pub fn windows_intel_1es() -> GhRunner {
gh_pool_with_image_1es(INTEL_POOL_1ES, WINDOWS_IMAGE_AMD64)
gh_pool_with_image_1es(INTEL_POOL_1ES, WINDOWS_IMAGE_AMD64, WINDOWS_WORK_1ES)
}

pub fn windows_arm_1es() -> GhRunner {
gh_pool_with_image_1es(ARM_POOL_1ES, WINDOWS_IMAGE_ARM64)
gh_pool_with_image_1es(ARM_POOL_1ES, WINDOWS_IMAGE_ARM64, WINDOWS_WORK_1ES)
}

pub fn linux_arm_1es() -> GhRunner {
gh_pool_with_image_1es(ARM_POOL_1ES, LINUX_IMAGE_ARM64)
gh_pool_with_image_1es(ARM_POOL_1ES, LINUX_IMAGE_ARM64, LINUX_WORK_1ES)
}

pub fn linux_amd_1es() -> GhRunner {
gh_pool_with_image_1es(AMD_POOL_1ES, LINUX_IMAGE_AMD64)
gh_pool_with_image_1es(AMD_POOL_1ES, LINUX_IMAGE_AMD64, LINUX_WORK_1ES)
}

pub fn linux_mshv_1es() -> GhRunner {
gh_pool_with_image_1es(INTEL_POOL_1ES, MSHV_IMAGE_AMD64)
gh_pool_with_image_1es(INTEL_POOL_1ES, MSHV_IMAGE_AMD64, LINUX_WORK_1ES)
}

pub fn windows_x64_gh() -> GhRunner {
Expand Down
Loading
Loading