## @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