blob: 5809152d26ee6d0466f3a0afca876a6ba04b751d [file] [log] [blame]
## @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