[PATCH v2 3/7] OvmfPkg/PlatformCI: add BhyveBuild.py


Gerd Hoffmann
 

Add build test for OvmfPkg/Bhyve.

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

diff --git a/OvmfPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml b/OvmfPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml
index 7117b86b8177..cc37a2be8f93 100644
--- a/OvmfPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml
+++ b/OvmfPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml
@@ -113,6 +113,15 @@ jobs:
Build.Target: "NOOPT"
Run.Flags: $(run_flags)
Run: $(should_run)
+
+ BHYVE_X64_DEBUG:
+ Build.File: "$(package)/PlatformCI/BhyveBuild.py"
+ Build.Arch: "X64"
+ Build.Flags: ""
+ Build.Target: "DEBUG"
+ # this build is for freebsd bhyve not qemu-kvm
+ Run.Flags: "QEMU_SKIP=TRUE"
+ Run: $(should_run)
workspace:
clean: all

diff --git a/OvmfPkg/PlatformCI/BhyveBuild.py b/OvmfPkg/PlatformCI/BhyveBuild.py
new file mode 100644
index 000000000000..dd5bfe6661cf
--- /dev/null
+++ b/OvmfPkg/PlatformCI/BhyveBuild.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 "Bhyve/BhyveX64.dsc"
+
+import PlatformBuildLib
+PlatformBuildLib.CommonPlatform = CommonPlatform
--
2.31.1