## @file | |
# Azure Pipeline build file for building a platform. | |
# | |
# Platform: OVMF | |
# OS: Ubuntu | |
# Toolchain: GCC5 | |
# | |
# Copyright (c) Microsoft Corporation. | |
# SPDX-License-Identifier: BSD-2-Clause-Patent | |
## | |
trigger: | |
- master | |
- stable/* | |
pr: | |
- master | |
- stable/* | |
variables: | |
- template: ../../../.azurepipelines/templates/defaults.yml | |
jobs: | |
- job: Platform_CI | |
variables: | |
package: 'OvmfPkg' | |
vm_image: 'ubuntu-22.04' | |
should_run: true | |
run_flags: "MAKE_STARTUP_NSH=TRUE QEMU_HEADLESS=TRUE" | |
#Use matrix to speed up the build process | |
strategy: | |
matrix: | |
OVMF_IA32_DEBUG: | |
Build.File: "$(package)/PlatformCI/PlatformBuild.py" | |
Build.Arch: "IA32" | |
Build.Flags: "" | |
Build.Target: "DEBUG" | |
Run.Flags: $(run_flags) | |
Run: $(should_run) | |
OVMF_IA32_RELEASE: | |
Build.File: "$(package)/PlatformCI/PlatformBuild.py" | |
Build.Arch: "IA32" | |
Build.Flags: "" | |
Build.Target: "RELEASE" | |
Run.Flags: $(run_flags) | |
Run: $(should_run) | |
OVMF_IA32_NOOPT: | |
Build.File: "$(package)/PlatformCI/PlatformBuild.py" | |
Build.Arch: "IA32" | |
Build.Flags: "" | |
Build.Target: "NOOPT" | |
Run.Flags: $(run_flags) | |
Run: $(should_run) | |
OVMF_X64_DEBUG: | |
Build.File: "$(package)/PlatformCI/PlatformBuild.py" | |
Build.Arch: "X64" | |
Build.Flags: "" | |
Build.Target: "DEBUG" | |
Run.Flags: $(run_flags) | |
Run: $(should_run) | |
OVMF_X64_RELEASE: | |
Build.File: "$(package)/PlatformCI/PlatformBuild.py" | |
Build.Arch: "X64" | |
Build.Flags: "" | |
Build.Target: "RELEASE" | |
Run.Flags: $(run_flags) | |
Run: $(should_run) | |
OVMF_X64_NOOPT: | |
Build.File: "$(package)/PlatformCI/PlatformBuild.py" | |
Build.Arch: "X64" | |
Build.Flags: "" | |
Build.Target: "NOOPT" | |
Run.Flags: $(run_flags) | |
Run: $(should_run) | |
OVMF_IA32X64_DEBUG: | |
Build.File: "$(package)/PlatformCI/PlatformBuild.py" | |
Build.Arch: "IA32,X64" | |
Build.Flags: "" | |
Build.Target: "DEBUG" | |
Run.Flags: $(run_flags) | |
Run: $(should_run) | |
OVMF_IA32X64_RELEASE: | |
Build.File: "$(package)/PlatformCI/PlatformBuild.py" | |
Build.Arch: "IA32,X64" | |
Build.Flags: "" | |
Build.Target: "RELEASE" | |
Run.Flags: $(run_flags) | |
Run: $(should_run) | |
OVMF_IA32X64_NOOPT: | |
Build.File: "$(package)/PlatformCI/PlatformBuild.py" | |
Build.Arch: "IA32,X64" | |
Build.Flags: "" | |
Build.Target: "NOOPT" | |
Run.Flags: $(run_flags) | |
Run: $(should_run) | |
OVMF_IA32X64_FULL_DEBUG: | |
Build.File: "$(package)/PlatformCI/PlatformBuild.py" | |
Build.Arch: "IA32,X64" | |
Build.Flags: "BLD_*_SECURE_BOOT_ENABLE=1 BLD_*_SMM_REQUIRE=1 BLD_*_TPM2_ENABLE=1 BLD_*_NETWORK_TLS_ENABLE=1 BLD_*_NETWORK_IP6_ENABLE=1 BLD_*_NETWORK_HTTP_BOOT_ENABLE=1" | |
Build.Target: "DEBUG" | |
Run.Flags: $(run_flags) | |
Run: $(should_run) | |
OVMF_IA32X64_FULL_RELEASE: | |
Build.File: "$(package)/PlatformCI/PlatformBuild.py" | |
Build.Arch: "IA32,X64" | |
Build.Flags: "BLD_*_SECURE_BOOT_ENABLE=1 BLD_*_SMM_REQUIRE=1 BLD_*_TPM2_ENABLE=1 BLD_*_NETWORK_TLS_ENABLE=1 BLD_*_NETWORK_IP6_ENABLE=1 BLD_*_NETWORK_HTTP_BOOT_ENABLE=1" | |
Build.Target: "RELEASE" | |
Run.Flags: $(run_flags) | |
Run: $(should_run) | |
# This currently creates a very large image which is too big for the FDF declared range, | |
# skip this build for now. | |
# | |
# OVMF_IA32X64_FULL_NOOPT: | |
# Build.File: "$(package)/PlatformCI/PlatformBuild.py" | |
# Build.Arch: "IA32,X64" | |
# Build.Flags: "BLD_*_SECURE_BOOT_ENABLE=1 BLD_*_SMM_REQUIRE=1 BLD_*_TPM2_ENABLE=1 BLD_*_NETWORK_TLS_ENABLE=1 BLD_*_NETWORK_IP6_ENABLE=1 BLD_*_NETWORK_HTTP_BOOT_ENABLE=1" | |
# Build.Target: "NOOPT" | |
# Run.Flags: $(run_flags) | |
# Run: $(should_run) | |
AMDSEV_X64_DEBUG: | |
Build.File: "$(package)/PlatformCI/AmdSevBuild.py" | |
Build.Arch: "X64" | |
Build.Flags: "" | |
Build.Target: "DEBUG" | |
# restricted + stripped down build | |
# can't boot to uefi shell -> skip test | |
Run.Flags: "QEMU_SKIP=TRUE" | |
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) | |
CLOUDHV_X64_DEBUG: | |
Build.File: "$(package)/PlatformCI/CloudHvBuild.py" | |
Build.Arch: "X64" | |
Build.Flags: "" | |
Build.Target: "DEBUG" | |
# this build is for cloud-hypervisor 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) | |
OVMF_XEN_X64_DEBUG: | |
Build.File: "$(package)/PlatformCI/XenBuild.py" | |
Build.Arch: "X64" | |
Build.Flags: "" | |
Build.Target: "DEBUG" | |
# this build is for xen not qemu-kvm | |
Run.Flags: "QEMU_SKIP=TRUE" | |
Run: $(should_run) | |
INTELTDX_X64_DEBUG: | |
Build.File: "$(package)/PlatformCI/IntelTdxBuild.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) | |
QEMU_RISCV64_DEBUG: | |
Build.File: "$(package)/PlatformCI/QemuBuild.py" | |
Build.Arch: "RISCV64" | |
Build.Flags: "" | |
Build.Target: "DEBUG" | |
# this build is for RISC-V qemu virt not qemu-kvm | |
Run.Flags: "QEMU_SKIP=TRUE" | |
Run: $(should_run) | |
workspace: | |
clean: all | |
pool: | |
vmImage: $(vm_image) | |
container: ${{ variables.default_linux_image }} | |
steps: | |
- template: ../../../.azurepipelines/templates/platform-build-run-steps.yml | |
parameters: | |
tool_chain_tag: GCC5 | |
build_pkg: $(package) | |
build_target: $(Build.Target) | |
build_arch: $(Build.Arch) | |
build_file: $(Build.File) | |
build_flags: $(Build.Flags) | |
run_flags: $(Run.Flags) | |
usePythonVersion: '' # use Python from the container image |