Files
EDK2-fork/OvmfPkg/PlatformCI/.azurepipelines/Ubuntu-GCC.yml
Michael Kubacki ab3a451b1b OvmfPkg: Update pipeline filenames
Details about a particular pipeline change over time - such as the
specific Linux distro or toolchain version. At the same time, the
pipeline files are directly referenced in Azure Pipelines to run the
pipeline and few users have access to change those details.

To make the files less likely to refer to outdated information over
time and reduce the need for an Azure Pipeline administrator to get
involved, the files are updated to drop specific details apart from
the host OS environment used in the pipeline.

Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
2025-04-22 23:54:34 +00:00

217 lines
7.5 KiB
YAML

## @file
# Azure Pipeline build file for building a platform.
#
# Platform: OVMF
# OS: Ubuntu
# Toolchain: GCC
#
# 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)
QEMU_LOONGARCH64_DEBUG:
Build.File: "$(package)/PlatformCI/QemuBuild.py"
Build.Arch: "LOONGARCH64"
Build.Flags: ""
Build.Target: "DEBUG"
# this build is for LOONGARCH 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