[PATCH 4/6] OvmfPkg/PlatformCI: add MicrovmBuild.py


Gerd Hoffmann
 

Add build test for OvmfPkg/Microvm.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
.../.azurepipelines/Ubuntu-GCC5.yml | 10 +++++
OvmfPkg/PlatformCI/MicrovmBuild.py | 37 +++++++++++++++++++
2 files changed, 47 insertions(+)
create mode 100644 OvmfPkg/PlatformCI/MicrovmBuild.py

diff --git a/OvmfPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml b/OvmfPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml
index cc37a2be8f93..cd7eaae54ec7 100644
--- a/OvmfPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml
+++ b/OvmfPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml
@@ -122,6 +122,16 @@ jobs:
# this build is for freebsd bhyve not qemu-kvm
Run.Flags: "QEMU_SKIP=TRUE"
Run: $(should_run)
+
+ MICROVM_X64_DEBUG:
+ Build.File: "$(package)/PlatformCI/MicrovmBuild.py"
+ Build.Arch: "X64"
+ Build.Flags: ""
+ Build.Target: "DEBUG"
+ # no storage supported by microvm build
+ # can't boot to uefi shell -> skip test
+ Run.Flags: "QEMU_SKIP=TRUE"
+ Run: $(should_run)
workspace:
clean: all

diff --git a/OvmfPkg/PlatformCI/MicrovmBuild.py b/OvmfPkg/PlatformCI/MicrovmBuild.py
new file mode 100644
index 000000000000..c397837e6e5e
--- /dev/null
+++ b/OvmfPkg/PlatformCI/MicrovmBuild.py
@@ -0,0 +1,37 @@
+# @file
+# Script to Build OVMF UEFI firmware
+#
+# Copyright (c) Microsoft Corporation.
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+##
+import os
+import sys
+
+sys.path.append(os.path.join(os.getcwd(), 'OvmfPkg', 'PlatformCI'))
+from PlatformBuildLib import SettingsManager
+from PlatformBuildLib import PlatformBuilder
+
+ # ####################################################################################### #
+ # Common Configuration #
+ # ####################################################################################### #
+class CommonPlatform():
+ ''' Common settings for this platform. Define static data here and use
+ for the different parts of stuart
+ '''
+ PackagesSupported = ("OvmfPkg",)
+ ArchSupported = ("X64",)
+ TargetsSupported = ("DEBUG", "RELEASE", "NOOPT")
+ Scopes = ('ovmf', 'edk2-build')
+ WorkspaceRoot = os.path.realpath(os.path.join(
+ os.path.dirname(os.path.abspath(__file__)), "..", ".."))
+
+ @classmethod
+ def GetDscName(cls, ArchCsv: str) -> str:
+ ''' return the DSC given the architectures requested.
+
+ ArchCsv: csv string containing all architectures to build
+ '''
+ return "Microvm/MicrovmX64.dsc"
+
+import PlatformBuildLib
+PlatformBuildLib.CommonPlatform = CommonPlatform
--
2.31.1